mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Mon Sep 28 10:45:10 2015 +0100
Revision:
630:825f75ca301e
Parent:
441:d2c15dda23c1
Synchronized with git revision 54fbe4144faf309c37205a5d39fa665daa919f10

Full URL: https://github.com/mbedmicro/mbed/commit/54fbe4144faf309c37205a5d39fa665daa919f10/

NUCLEO_F031K6 : Add new target

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 340:28d1f895c6fe 1 /**
mbed_official 340:28d1f895c6fe 2 ******************************************************************************
mbed_official 340:28d1f895c6fe 3 * @file stm32f0xx_hal_dac_ex.c
mbed_official 340:28d1f895c6fe 4 * @author MCD Application Team
mbed_official 630:825f75ca301e 5 * @version V1.3.0
mbed_official 630:825f75ca301e 6 * @date 26-June-2015
mbed_official 340:28d1f895c6fe 7 * @brief DAC HAL module driver.
mbed_official 630:825f75ca301e 8 * This file provides firmware functions to manage the extended
mbed_official 630:825f75ca301e 9 * functionalities of the DAC peripheral.
mbed_official 340:28d1f895c6fe 10 *
mbed_official 340:28d1f895c6fe 11 *
mbed_official 340:28d1f895c6fe 12 @verbatim
mbed_official 340:28d1f895c6fe 13 ==============================================================================
mbed_official 340:28d1f895c6fe 14 ##### How to use this driver #####
mbed_official 340:28d1f895c6fe 15 ==============================================================================
mbed_official 340:28d1f895c6fe 16 [..]
mbed_official 630:825f75ca301e 17 (+) When Dual mode is enabled (i.e. DAC Channel1 and Channel2 are used simultaneously) :
mbed_official 340:28d1f895c6fe 18 Use HAL_DACEx_DualGetValue() to get digital data to be converted and use
mbed_official 340:28d1f895c6fe 19 HAL_DACEx_DualSetValue() to set digital value to converted simultaneously in Channel 1 and Channel 2.
mbed_official 340:28d1f895c6fe 20 (+) Use HAL_DACEx_TriangleWaveGenerate() to generate Triangle signal.
mbed_official 340:28d1f895c6fe 21 (+) Use HAL_DACEx_NoiseWaveGenerate() to generate Noise signal.
mbed_official 340:28d1f895c6fe 22
mbed_official 340:28d1f895c6fe 23 @endverbatim
mbed_official 340:28d1f895c6fe 24 ******************************************************************************
mbed_official 340:28d1f895c6fe 25 * @attention
mbed_official 340:28d1f895c6fe 26 *
mbed_official 630:825f75ca301e 27 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
mbed_official 340:28d1f895c6fe 28 *
mbed_official 340:28d1f895c6fe 29 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 340:28d1f895c6fe 30 * are permitted provided that the following conditions are met:
mbed_official 340:28d1f895c6fe 31 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 340:28d1f895c6fe 32 * this list of conditions and the following disclaimer.
mbed_official 340:28d1f895c6fe 33 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 340:28d1f895c6fe 34 * this list of conditions and the following disclaimer in the documentation
mbed_official 340:28d1f895c6fe 35 * and/or other materials provided with the distribution.
mbed_official 340:28d1f895c6fe 36 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 340:28d1f895c6fe 37 * may be used to endorse or promote products derived from this software
mbed_official 340:28d1f895c6fe 38 * without specific prior written permission.
mbed_official 340:28d1f895c6fe 39 *
mbed_official 340:28d1f895c6fe 40 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 340:28d1f895c6fe 41 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 340:28d1f895c6fe 42 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 340:28d1f895c6fe 43 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 340:28d1f895c6fe 44 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 340:28d1f895c6fe 45 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 340:28d1f895c6fe 46 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 340:28d1f895c6fe 47 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 340:28d1f895c6fe 48 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 340:28d1f895c6fe 49 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 340:28d1f895c6fe 50 *
mbed_official 340:28d1f895c6fe 51 ******************************************************************************
mbed_official 340:28d1f895c6fe 52 */
mbed_official 340:28d1f895c6fe 53
mbed_official 340:28d1f895c6fe 54
mbed_official 340:28d1f895c6fe 55 /* Includes ------------------------------------------------------------------*/
mbed_official 340:28d1f895c6fe 56 #include "stm32f0xx_hal.h"
mbed_official 340:28d1f895c6fe 57
mbed_official 630:825f75ca301e 58 /** @addtogroup STM32F0xx_HAL_Driver
mbed_official 630:825f75ca301e 59 * @{
mbed_official 630:825f75ca301e 60 */
mbed_official 630:825f75ca301e 61
mbed_official 441:d2c15dda23c1 62 #ifdef HAL_DAC_MODULE_ENABLED
mbed_official 441:d2c15dda23c1 63
mbed_official 630:825f75ca301e 64 /** @addtogroup DAC
mbed_official 630:825f75ca301e 65 * @{
mbed_official 630:825f75ca301e 66 */
mbed_official 630:825f75ca301e 67
mbed_official 441:d2c15dda23c1 68 #if defined(STM32F051x8) || defined(STM32F058xx) || \
mbed_official 441:d2c15dda23c1 69 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 441:d2c15dda23c1 70 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 441:d2c15dda23c1 71
mbed_official 630:825f75ca301e 72 /** @addtogroup DAC_Private_Functions
mbed_official 340:28d1f895c6fe 73 * @{
mbed_official 340:28d1f895c6fe 74 */
mbed_official 340:28d1f895c6fe 75 static void DAC_DMAConvCpltCh1(DMA_HandleTypeDef *hdma);
mbed_official 340:28d1f895c6fe 76 static void DAC_DMAErrorCh1(DMA_HandleTypeDef *hdma);
mbed_official 340:28d1f895c6fe 77 static void DAC_DMAHalfConvCpltCh1(DMA_HandleTypeDef *hdma);
mbed_official 340:28d1f895c6fe 78 /**
mbed_official 340:28d1f895c6fe 79 * @}
mbed_official 340:28d1f895c6fe 80 */
mbed_official 340:28d1f895c6fe 81
mbed_official 630:825f75ca301e 82 #endif /* STM32F051x8 STM32F058xx */
mbed_official 630:825f75ca301e 83 /* STM32F071xB STM32F072xB STM32F078xx */
mbed_official 630:825f75ca301e 84 /* STM32F091xC STM32F098xx */
mbed_official 630:825f75ca301e 85
mbed_official 630:825f75ca301e 86 #if defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 630:825f75ca301e 87 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 630:825f75ca301e 88
mbed_official 630:825f75ca301e 89 /** @addtogroup DAC_Private_Functions
mbed_official 340:28d1f895c6fe 90 * @{
mbed_official 340:28d1f895c6fe 91 */
mbed_official 340:28d1f895c6fe 92
mbed_official 630:825f75ca301e 93 /* DAC_DMAConvCpltCh2 / DAC_DMAErrorCh2 / DAC_DMAHalfConvCpltCh2 */
mbed_official 630:825f75ca301e 94 /* are set by HAL_DAC_Start_DMA */
mbed_official 630:825f75ca301e 95
mbed_official 630:825f75ca301e 96 void DAC_DMAConvCpltCh2(DMA_HandleTypeDef *hdma);
mbed_official 630:825f75ca301e 97 void DAC_DMAErrorCh2(DMA_HandleTypeDef *hdma);
mbed_official 630:825f75ca301e 98 void DAC_DMAHalfConvCpltCh2(DMA_HandleTypeDef *hdma);
mbed_official 630:825f75ca301e 99 /**
mbed_official 630:825f75ca301e 100 * @}
mbed_official 630:825f75ca301e 101 */
mbed_official 630:825f75ca301e 102
mbed_official 630:825f75ca301e 103 #endif /* STM32F071xB STM32F072xB STM32F078xx */
mbed_official 630:825f75ca301e 104 /* STM32F091xC STM32F098xx */
mbed_official 630:825f75ca301e 105
mbed_official 630:825f75ca301e 106 /** @addtogroup DAC_Exported_Functions
mbed_official 340:28d1f895c6fe 107 * @{
mbed_official 340:28d1f895c6fe 108 */
mbed_official 340:28d1f895c6fe 109
mbed_official 630:825f75ca301e 110 /** @addtogroup DAC_Exported_Functions_Group3
mbed_official 630:825f75ca301e 111 * @{
mbed_official 630:825f75ca301e 112 */
mbed_official 340:28d1f895c6fe 113
mbed_official 340:28d1f895c6fe 114 #if defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 115 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 116
mbed_official 340:28d1f895c6fe 117 /**
mbed_official 340:28d1f895c6fe 118 * @brief Configures the selected DAC channel.
mbed_official 340:28d1f895c6fe 119 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 120 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 121 * @param sConfig: DAC configuration structure.
mbed_official 340:28d1f895c6fe 122 * @param Channel: The selected DAC channel.
mbed_official 340:28d1f895c6fe 123 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 124 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 340:28d1f895c6fe 125 * @arg DAC_CHANNEL_2: DAC Channel2 selected
mbed_official 340:28d1f895c6fe 126 * @retval HAL status
mbed_official 340:28d1f895c6fe 127 */
mbed_official 340:28d1f895c6fe 128 HAL_StatusTypeDef HAL_DAC_ConfigChannel(DAC_HandleTypeDef* hdac, DAC_ChannelConfTypeDef* sConfig, uint32_t Channel)
mbed_official 340:28d1f895c6fe 129 {
mbed_official 340:28d1f895c6fe 130 uint32_t tmpreg1 = 0, tmpreg2 = 0;
mbed_official 340:28d1f895c6fe 131
mbed_official 340:28d1f895c6fe 132 /* Check the DAC parameters */
mbed_official 340:28d1f895c6fe 133 assert_param(IS_DAC_TRIGGER(sConfig->DAC_Trigger));
mbed_official 340:28d1f895c6fe 134 assert_param(IS_DAC_OUTPUT_BUFFER_STATE(sConfig->DAC_OutputBuffer));
mbed_official 340:28d1f895c6fe 135 assert_param(IS_DAC_TRIGGER(sConfig->DAC_Trigger));
mbed_official 340:28d1f895c6fe 136 assert_param(IS_DAC_CHANNEL(Channel));
mbed_official 340:28d1f895c6fe 137
mbed_official 340:28d1f895c6fe 138 /* Process locked */
mbed_official 340:28d1f895c6fe 139 __HAL_LOCK(hdac);
mbed_official 340:28d1f895c6fe 140
mbed_official 340:28d1f895c6fe 141 /* Change DAC state */
mbed_official 340:28d1f895c6fe 142 hdac->State = HAL_DAC_STATE_BUSY;
mbed_official 340:28d1f895c6fe 143
mbed_official 340:28d1f895c6fe 144 /* Get the DAC CR value */
mbed_official 630:825f75ca301e 145 tmpreg1 = hdac->Instance->CR;
mbed_official 340:28d1f895c6fe 146 /* Clear BOFFx, TENx, TSELx, WAVEx and MAMPx bits */
mbed_official 340:28d1f895c6fe 147 tmpreg1 &= ~(((uint32_t)(DAC_CR_MAMP1 | DAC_CR_WAVE1 | DAC_CR_TSEL1 | DAC_CR_TEN1 | DAC_CR_BOFF1)) << Channel);
mbed_official 340:28d1f895c6fe 148 /* Configure for the selected DAC channel: buffer output, trigger */
mbed_official 340:28d1f895c6fe 149 /* Set TSELx and TENx bits according to DAC_Trigger value */
mbed_official 340:28d1f895c6fe 150 /* Set BOFFx bit according to DAC_OutputBuffer value */
mbed_official 340:28d1f895c6fe 151 tmpreg2 = (sConfig->DAC_Trigger | sConfig->DAC_OutputBuffer);
mbed_official 340:28d1f895c6fe 152 /* Calculate CR register value depending on DAC_Channel */
mbed_official 340:28d1f895c6fe 153 tmpreg1 |= tmpreg2 << Channel;
mbed_official 340:28d1f895c6fe 154 /* Write to DAC CR */
mbed_official 630:825f75ca301e 155 hdac->Instance->CR = tmpreg1;
mbed_official 340:28d1f895c6fe 156
mbed_official 340:28d1f895c6fe 157 /* Change DAC state */
mbed_official 340:28d1f895c6fe 158 hdac->State = HAL_DAC_STATE_READY;
mbed_official 340:28d1f895c6fe 159
mbed_official 340:28d1f895c6fe 160 /* Process unlocked */
mbed_official 340:28d1f895c6fe 161 __HAL_UNLOCK(hdac);
mbed_official 340:28d1f895c6fe 162
mbed_official 340:28d1f895c6fe 163 /* Return function status */
mbed_official 340:28d1f895c6fe 164 return HAL_OK;
mbed_official 340:28d1f895c6fe 165 }
mbed_official 340:28d1f895c6fe 166
mbed_official 340:28d1f895c6fe 167 #endif /* STM32F071xB STM32F072xB STM32F078xx */
mbed_official 340:28d1f895c6fe 168 /* STM32F091xC STM32F098xx */
mbed_official 340:28d1f895c6fe 169
mbed_official 340:28d1f895c6fe 170 #if defined (STM32F051x8) || defined (STM32F058xx)
mbed_official 340:28d1f895c6fe 171
mbed_official 340:28d1f895c6fe 172 /**
mbed_official 340:28d1f895c6fe 173 * @brief Configures the selected DAC channel.
mbed_official 340:28d1f895c6fe 174 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 175 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 176 * @param sConfig: DAC configuration structure.
mbed_official 340:28d1f895c6fe 177 * @param Channel: The selected DAC channel.
mbed_official 340:28d1f895c6fe 178 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 179 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 340:28d1f895c6fe 180 * @retval HAL status
mbed_official 340:28d1f895c6fe 181 */
mbed_official 340:28d1f895c6fe 182 HAL_StatusTypeDef HAL_DAC_ConfigChannel(DAC_HandleTypeDef* hdac, DAC_ChannelConfTypeDef* sConfig, uint32_t Channel)
mbed_official 340:28d1f895c6fe 183 {
mbed_official 340:28d1f895c6fe 184 uint32_t tmpreg1 = 0, tmpreg2 = 0;
mbed_official 340:28d1f895c6fe 185
mbed_official 340:28d1f895c6fe 186 /* Check the DAC parameters */
mbed_official 340:28d1f895c6fe 187 assert_param(IS_DAC_TRIGGER(sConfig->DAC_Trigger));
mbed_official 340:28d1f895c6fe 188 assert_param(IS_DAC_OUTPUT_BUFFER_STATE(sConfig->DAC_OutputBuffer));
mbed_official 340:28d1f895c6fe 189 assert_param(IS_DAC_TRIGGER(sConfig->DAC_Trigger));
mbed_official 340:28d1f895c6fe 190 assert_param(IS_DAC_CHANNEL(Channel));
mbed_official 340:28d1f895c6fe 191
mbed_official 340:28d1f895c6fe 192 /* Process locked */
mbed_official 340:28d1f895c6fe 193 __HAL_LOCK(hdac);
mbed_official 340:28d1f895c6fe 194
mbed_official 340:28d1f895c6fe 195 /* Change DAC state */
mbed_official 340:28d1f895c6fe 196 hdac->State = HAL_DAC_STATE_BUSY;
mbed_official 340:28d1f895c6fe 197
mbed_official 340:28d1f895c6fe 198 /* Get the DAC CR value */
mbed_official 630:825f75ca301e 199 tmpreg1 = hdac->Instance->CR;
mbed_official 340:28d1f895c6fe 200 /* Clear BOFFx, TENx, TSELx, WAVEx and MAMPx bits */
mbed_official 340:28d1f895c6fe 201 tmpreg1 &= ~(((uint32_t)(DAC_CR_TSEL1 | DAC_CR_TEN1 | DAC_CR_BOFF1)) << Channel);
mbed_official 340:28d1f895c6fe 202 /* Configure for the selected DAC channel: buffer output, trigger */
mbed_official 340:28d1f895c6fe 203 /* Set TSELx and TENx bits according to DAC_Trigger value */
mbed_official 340:28d1f895c6fe 204 /* Set BOFFx bit according to DAC_OutputBuffer value */
mbed_official 340:28d1f895c6fe 205 tmpreg2 = (sConfig->DAC_Trigger | sConfig->DAC_OutputBuffer);
mbed_official 340:28d1f895c6fe 206 /* Calculate CR register value depending on DAC_Channel */
mbed_official 340:28d1f895c6fe 207 tmpreg1 |= tmpreg2 << Channel;
mbed_official 340:28d1f895c6fe 208 /* Write to DAC CR */
mbed_official 630:825f75ca301e 209 hdac->Instance->CR = tmpreg1;
mbed_official 340:28d1f895c6fe 210
mbed_official 340:28d1f895c6fe 211 /* Change DAC state */
mbed_official 340:28d1f895c6fe 212 hdac->State = HAL_DAC_STATE_READY;
mbed_official 340:28d1f895c6fe 213
mbed_official 340:28d1f895c6fe 214 /* Process unlocked */
mbed_official 340:28d1f895c6fe 215 __HAL_UNLOCK(hdac);
mbed_official 340:28d1f895c6fe 216
mbed_official 340:28d1f895c6fe 217 /* Return function status */
mbed_official 340:28d1f895c6fe 218 return HAL_OK;
mbed_official 340:28d1f895c6fe 219 }
mbed_official 340:28d1f895c6fe 220
mbed_official 340:28d1f895c6fe 221 #endif /* STM32F051x8 STM32F058xx */
mbed_official 340:28d1f895c6fe 222
mbed_official 340:28d1f895c6fe 223 #if defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 224 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 225 /* DAC 1 has 2 channels 1 & 2 */
mbed_official 340:28d1f895c6fe 226
mbed_official 340:28d1f895c6fe 227 /**
mbed_official 340:28d1f895c6fe 228 * @brief Returns the last data output value of the selected DAC channel.
mbed_official 340:28d1f895c6fe 229 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 230 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 231 * @param Channel: The selected DAC channel.
mbed_official 340:28d1f895c6fe 232 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 233 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 340:28d1f895c6fe 234 * @arg DAC_CHANNEL_2: DAC Channel2 selected
mbed_official 340:28d1f895c6fe 235 * @retval The selected DAC channel data output value.
mbed_official 340:28d1f895c6fe 236 */
mbed_official 340:28d1f895c6fe 237 uint32_t HAL_DAC_GetValue(DAC_HandleTypeDef* hdac, uint32_t Channel)
mbed_official 340:28d1f895c6fe 238 {
mbed_official 340:28d1f895c6fe 239 /* Check the parameters */
mbed_official 340:28d1f895c6fe 240 assert_param(IS_DAC_CHANNEL(Channel));
mbed_official 340:28d1f895c6fe 241
mbed_official 340:28d1f895c6fe 242 /* Returns the DAC channel data output register value */
mbed_official 340:28d1f895c6fe 243 if(Channel == DAC_CHANNEL_1)
mbed_official 340:28d1f895c6fe 244 {
mbed_official 340:28d1f895c6fe 245 return hdac->Instance->DOR1;
mbed_official 340:28d1f895c6fe 246 }
mbed_official 340:28d1f895c6fe 247 else
mbed_official 340:28d1f895c6fe 248 {
mbed_official 340:28d1f895c6fe 249 return hdac->Instance->DOR2;
mbed_official 340:28d1f895c6fe 250 }
mbed_official 340:28d1f895c6fe 251 }
mbed_official 340:28d1f895c6fe 252
mbed_official 340:28d1f895c6fe 253 #endif /* STM32F071xB STM32F072xB STM32F078xx */
mbed_official 340:28d1f895c6fe 254 /* STM32F091xC STM32F098xx */
mbed_official 340:28d1f895c6fe 255
mbed_official 340:28d1f895c6fe 256 #if defined (STM32F051x8) || defined (STM32F058xx)
mbed_official 340:28d1f895c6fe 257
mbed_official 340:28d1f895c6fe 258 /* DAC 1 has 1 channels */
mbed_official 340:28d1f895c6fe 259
mbed_official 340:28d1f895c6fe 260 /**
mbed_official 340:28d1f895c6fe 261 * @brief Returns the last data output value of the selected DAC channel.
mbed_official 340:28d1f895c6fe 262 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 263 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 264 * @param Channel: The selected DAC channel.
mbed_official 340:28d1f895c6fe 265 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 266 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 340:28d1f895c6fe 267 * @retval The selected DAC channel data output value.
mbed_official 340:28d1f895c6fe 268 */
mbed_official 340:28d1f895c6fe 269 uint32_t HAL_DAC_GetValue(DAC_HandleTypeDef* hdac, uint32_t Channel)
mbed_official 340:28d1f895c6fe 270 {
mbed_official 340:28d1f895c6fe 271 /* Check the parameters */
mbed_official 340:28d1f895c6fe 272 assert_param(IS_DAC_CHANNEL(Channel));
mbed_official 340:28d1f895c6fe 273
mbed_official 340:28d1f895c6fe 274 /* Returns the DAC channel data output register value */
mbed_official 340:28d1f895c6fe 275 return hdac->Instance->DOR1;
mbed_official 340:28d1f895c6fe 276 }
mbed_official 340:28d1f895c6fe 277
mbed_official 340:28d1f895c6fe 278
mbed_official 340:28d1f895c6fe 279
mbed_official 340:28d1f895c6fe 280 #endif /* STM32F051x8 STM32F058xx */
mbed_official 340:28d1f895c6fe 281
mbed_official 630:825f75ca301e 282 /**
mbed_official 630:825f75ca301e 283 * @}
mbed_official 630:825f75ca301e 284 */
mbed_official 630:825f75ca301e 285
mbed_official 630:825f75ca301e 286 /** @addtogroup DAC_Exported_Functions_Group2
mbed_official 630:825f75ca301e 287 * @{
mbed_official 630:825f75ca301e 288 */
mbed_official 630:825f75ca301e 289
mbed_official 340:28d1f895c6fe 290 #if defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 291 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 292
mbed_official 340:28d1f895c6fe 293 /**
mbed_official 340:28d1f895c6fe 294 * @brief Enables DAC and starts conversion of channel.
mbed_official 340:28d1f895c6fe 295 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 296 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 297 * @param Channel: The selected DAC channel.
mbed_official 340:28d1f895c6fe 298 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 299 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 340:28d1f895c6fe 300 * @arg DAC_CHANNEL_2: DAC Channel2 selected
mbed_official 340:28d1f895c6fe 301 * @retval HAL status
mbed_official 340:28d1f895c6fe 302 */
mbed_official 340:28d1f895c6fe 303 HAL_StatusTypeDef HAL_DAC_Start(DAC_HandleTypeDef* hdac, uint32_t Channel)
mbed_official 340:28d1f895c6fe 304 {
mbed_official 340:28d1f895c6fe 305 /* Check the parameters */
mbed_official 340:28d1f895c6fe 306 assert_param(IS_DAC_CHANNEL(Channel));
mbed_official 340:28d1f895c6fe 307
mbed_official 340:28d1f895c6fe 308 /* Process locked */
mbed_official 340:28d1f895c6fe 309 __HAL_LOCK(hdac);
mbed_official 340:28d1f895c6fe 310
mbed_official 340:28d1f895c6fe 311 /* Change DAC state */
mbed_official 340:28d1f895c6fe 312 hdac->State = HAL_DAC_STATE_BUSY;
mbed_official 340:28d1f895c6fe 313
mbed_official 340:28d1f895c6fe 314 /* Enable the Peripharal */
mbed_official 340:28d1f895c6fe 315 __HAL_DAC_ENABLE(hdac, Channel);
mbed_official 340:28d1f895c6fe 316
mbed_official 340:28d1f895c6fe 317 if(Channel == DAC_CHANNEL_1)
mbed_official 340:28d1f895c6fe 318 {
mbed_official 340:28d1f895c6fe 319 /* Check if software trigger enabled */
mbed_official 630:825f75ca301e 320 if((hdac->Instance->CR & (DAC_CR_TEN1 | DAC_CR_TSEL1)) == (DAC_CR_TEN1 | DAC_CR_TSEL1))
mbed_official 340:28d1f895c6fe 321 {
mbed_official 340:28d1f895c6fe 322 /* Enable the selected DAC software conversion */
mbed_official 630:825f75ca301e 323 SET_BIT(hdac->Instance->SWTRIGR, DAC_SWTRIGR_SWTRIG1);
mbed_official 340:28d1f895c6fe 324 }
mbed_official 340:28d1f895c6fe 325 }
mbed_official 340:28d1f895c6fe 326 else
mbed_official 340:28d1f895c6fe 327 {
mbed_official 340:28d1f895c6fe 328 /* Check if software trigger enabled */
mbed_official 630:825f75ca301e 329 if((hdac->Instance->CR & (DAC_CR_TEN2 | DAC_CR_TSEL2)) == (DAC_CR_TEN2 | DAC_CR_TSEL2))
mbed_official 340:28d1f895c6fe 330 {
mbed_official 340:28d1f895c6fe 331 /* Enable the selected DAC software conversion*/
mbed_official 630:825f75ca301e 332 SET_BIT(hdac->Instance->SWTRIGR, DAC_SWTRIGR_SWTRIG2);
mbed_official 340:28d1f895c6fe 333 }
mbed_official 340:28d1f895c6fe 334 }
mbed_official 340:28d1f895c6fe 335
mbed_official 340:28d1f895c6fe 336 /* Change DAC state */
mbed_official 340:28d1f895c6fe 337 hdac->State = HAL_DAC_STATE_READY;
mbed_official 340:28d1f895c6fe 338
mbed_official 340:28d1f895c6fe 339 /* Process unlocked */
mbed_official 340:28d1f895c6fe 340 __HAL_UNLOCK(hdac);
mbed_official 340:28d1f895c6fe 341
mbed_official 340:28d1f895c6fe 342 /* Return function status */
mbed_official 340:28d1f895c6fe 343 return HAL_OK;
mbed_official 340:28d1f895c6fe 344 }
mbed_official 340:28d1f895c6fe 345
mbed_official 340:28d1f895c6fe 346 /**
mbed_official 340:28d1f895c6fe 347 * @brief Enables DAC and starts conversion of channel.
mbed_official 340:28d1f895c6fe 348 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 349 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 350 * @param Channel: The selected DAC channel.
mbed_official 340:28d1f895c6fe 351 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 352 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 340:28d1f895c6fe 353 * @arg DAC_CHANNEL_2: DAC Channel2 selected
mbed_official 340:28d1f895c6fe 354 * @param pData: The destination peripheral Buffer address.
mbed_official 340:28d1f895c6fe 355 * @param Length: The length of data to be transferred from memory to DAC peripheral
mbed_official 340:28d1f895c6fe 356 * @param Alignment: Specifies the data alignment for DAC channel.
mbed_official 340:28d1f895c6fe 357 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 358 * @arg DAC_ALIGN_8B_R: 8bit right data alignment selected
mbed_official 340:28d1f895c6fe 359 * @arg DAC_ALIGN_12B_L: 12bit left data alignment selected
mbed_official 340:28d1f895c6fe 360 * @arg DAC_ALIGN_12B_R: 12bit right data alignment selected
mbed_official 340:28d1f895c6fe 361 * @retval HAL status
mbed_official 340:28d1f895c6fe 362 */
mbed_official 340:28d1f895c6fe 363 HAL_StatusTypeDef HAL_DAC_Start_DMA(DAC_HandleTypeDef* hdac, uint32_t Channel, uint32_t* pData, uint32_t Length, uint32_t Alignment)
mbed_official 340:28d1f895c6fe 364 {
mbed_official 340:28d1f895c6fe 365 uint32_t tmpreg = 0;
mbed_official 340:28d1f895c6fe 366
mbed_official 340:28d1f895c6fe 367 /* Check the parameters */
mbed_official 340:28d1f895c6fe 368 assert_param(IS_DAC_CHANNEL(Channel));
mbed_official 340:28d1f895c6fe 369 assert_param(IS_DAC_ALIGN(Alignment));
mbed_official 340:28d1f895c6fe 370
mbed_official 340:28d1f895c6fe 371 /* Process locked */
mbed_official 340:28d1f895c6fe 372 __HAL_LOCK(hdac);
mbed_official 340:28d1f895c6fe 373
mbed_official 340:28d1f895c6fe 374 /* Change DAC state */
mbed_official 340:28d1f895c6fe 375 hdac->State = HAL_DAC_STATE_BUSY;
mbed_official 340:28d1f895c6fe 376
mbed_official 340:28d1f895c6fe 377 if(Channel == DAC_CHANNEL_1)
mbed_official 340:28d1f895c6fe 378 {
mbed_official 340:28d1f895c6fe 379 /* Set the DMA transfer complete callback for channel1 */
mbed_official 340:28d1f895c6fe 380 hdac->DMA_Handle1->XferCpltCallback = DAC_DMAConvCpltCh1;
mbed_official 340:28d1f895c6fe 381
mbed_official 340:28d1f895c6fe 382 /* Set the DMA half transfer complete callback for channel1 */
mbed_official 340:28d1f895c6fe 383 hdac->DMA_Handle1->XferHalfCpltCallback = DAC_DMAHalfConvCpltCh1;
mbed_official 340:28d1f895c6fe 384
mbed_official 340:28d1f895c6fe 385 /* Set the DMA error callback for channel1 */
mbed_official 340:28d1f895c6fe 386 hdac->DMA_Handle1->XferErrorCallback = DAC_DMAErrorCh1;
mbed_official 340:28d1f895c6fe 387
mbed_official 340:28d1f895c6fe 388 /* Enable the selected DAC channel1 DMA request */
mbed_official 630:825f75ca301e 389 SET_BIT(hdac->Instance->CR, DAC_CR_DMAEN1);
mbed_official 340:28d1f895c6fe 390
mbed_official 340:28d1f895c6fe 391 /* Case of use of channel 1 */
mbed_official 340:28d1f895c6fe 392 switch(Alignment)
mbed_official 340:28d1f895c6fe 393 {
mbed_official 340:28d1f895c6fe 394 case DAC_ALIGN_12B_R:
mbed_official 340:28d1f895c6fe 395 /* Get DHR12R1 address */
mbed_official 340:28d1f895c6fe 396 tmpreg = (uint32_t)&hdac->Instance->DHR12R1;
mbed_official 340:28d1f895c6fe 397 break;
mbed_official 340:28d1f895c6fe 398 case DAC_ALIGN_12B_L:
mbed_official 340:28d1f895c6fe 399 /* Get DHR12L1 address */
mbed_official 340:28d1f895c6fe 400 tmpreg = (uint32_t)&hdac->Instance->DHR12L1;
mbed_official 340:28d1f895c6fe 401 break;
mbed_official 340:28d1f895c6fe 402 case DAC_ALIGN_8B_R:
mbed_official 340:28d1f895c6fe 403 /* Get DHR8R1 address */
mbed_official 340:28d1f895c6fe 404 tmpreg = (uint32_t)&hdac->Instance->DHR8R1;
mbed_official 340:28d1f895c6fe 405 break;
mbed_official 340:28d1f895c6fe 406 default:
mbed_official 340:28d1f895c6fe 407 break;
mbed_official 340:28d1f895c6fe 408 }
mbed_official 340:28d1f895c6fe 409 }
mbed_official 340:28d1f895c6fe 410 else
mbed_official 340:28d1f895c6fe 411 {
mbed_official 340:28d1f895c6fe 412 /* Set the DMA transfer complete callback for channel2 */
mbed_official 340:28d1f895c6fe 413 hdac->DMA_Handle2->XferCpltCallback = DAC_DMAConvCpltCh2;
mbed_official 340:28d1f895c6fe 414
mbed_official 340:28d1f895c6fe 415 /* Set the DMA half transfer complete callback for channel2 */
mbed_official 340:28d1f895c6fe 416 hdac->DMA_Handle2->XferHalfCpltCallback = DAC_DMAHalfConvCpltCh2;
mbed_official 340:28d1f895c6fe 417
mbed_official 340:28d1f895c6fe 418 /* Set the DMA error callback for channel2 */
mbed_official 340:28d1f895c6fe 419 hdac->DMA_Handle2->XferErrorCallback = DAC_DMAErrorCh2;
mbed_official 340:28d1f895c6fe 420
mbed_official 340:28d1f895c6fe 421 /* Enable the selected DAC channel2 DMA request */
mbed_official 630:825f75ca301e 422 SET_BIT(hdac->Instance->CR, DAC_CR_DMAEN2);
mbed_official 340:28d1f895c6fe 423
mbed_official 340:28d1f895c6fe 424 /* Case of use of channel 2 */
mbed_official 340:28d1f895c6fe 425 switch(Alignment)
mbed_official 340:28d1f895c6fe 426 {
mbed_official 340:28d1f895c6fe 427 case DAC_ALIGN_12B_R:
mbed_official 340:28d1f895c6fe 428 /* Get DHR12R2 address */
mbed_official 340:28d1f895c6fe 429 tmpreg = (uint32_t)&hdac->Instance->DHR12R2;
mbed_official 340:28d1f895c6fe 430 break;
mbed_official 340:28d1f895c6fe 431 case DAC_ALIGN_12B_L:
mbed_official 340:28d1f895c6fe 432 /* Get DHR12L2 address */
mbed_official 340:28d1f895c6fe 433 tmpreg = (uint32_t)&hdac->Instance->DHR12L2;
mbed_official 340:28d1f895c6fe 434 break;
mbed_official 340:28d1f895c6fe 435 case DAC_ALIGN_8B_R:
mbed_official 340:28d1f895c6fe 436 /* Get DHR8R2 address */
mbed_official 340:28d1f895c6fe 437 tmpreg = (uint32_t)&hdac->Instance->DHR8R2;
mbed_official 340:28d1f895c6fe 438 break;
mbed_official 340:28d1f895c6fe 439 default:
mbed_official 340:28d1f895c6fe 440 break;
mbed_official 340:28d1f895c6fe 441 }
mbed_official 340:28d1f895c6fe 442 }
mbed_official 340:28d1f895c6fe 443
mbed_official 340:28d1f895c6fe 444 /* Enable the DMA channel */
mbed_official 340:28d1f895c6fe 445 if(Channel == DAC_CHANNEL_1)
mbed_official 340:28d1f895c6fe 446 {
mbed_official 340:28d1f895c6fe 447 /* Enable the DAC DMA underrun interrupt */
mbed_official 340:28d1f895c6fe 448 __HAL_DAC_ENABLE_IT(hdac, DAC_IT_DMAUDR1);
mbed_official 340:28d1f895c6fe 449
mbed_official 340:28d1f895c6fe 450 /* Enable the DMA channel */
mbed_official 340:28d1f895c6fe 451 HAL_DMA_Start_IT(hdac->DMA_Handle1, (uint32_t)pData, tmpreg, Length);
mbed_official 340:28d1f895c6fe 452 }
mbed_official 340:28d1f895c6fe 453 else
mbed_official 340:28d1f895c6fe 454 {
mbed_official 340:28d1f895c6fe 455 /* Enable the DAC DMA underrun interrupt */
mbed_official 340:28d1f895c6fe 456 __HAL_DAC_ENABLE_IT(hdac, DAC_IT_DMAUDR2);
mbed_official 340:28d1f895c6fe 457
mbed_official 340:28d1f895c6fe 458 /* Enable the DMA channel */
mbed_official 340:28d1f895c6fe 459 HAL_DMA_Start_IT(hdac->DMA_Handle2, (uint32_t)pData, tmpreg, Length);
mbed_official 340:28d1f895c6fe 460 }
mbed_official 340:28d1f895c6fe 461
mbed_official 340:28d1f895c6fe 462 /* Enable the Peripharal */
mbed_official 340:28d1f895c6fe 463 __HAL_DAC_ENABLE(hdac, Channel);
mbed_official 340:28d1f895c6fe 464
mbed_official 340:28d1f895c6fe 465 /* Process Unlocked */
mbed_official 340:28d1f895c6fe 466 __HAL_UNLOCK(hdac);
mbed_official 340:28d1f895c6fe 467
mbed_official 340:28d1f895c6fe 468 /* Return function status */
mbed_official 340:28d1f895c6fe 469 return HAL_OK;
mbed_official 340:28d1f895c6fe 470 }
mbed_official 340:28d1f895c6fe 471
mbed_official 340:28d1f895c6fe 472
mbed_official 340:28d1f895c6fe 473
mbed_official 340:28d1f895c6fe 474 #endif /* STM32F071xB STM32F072xB STM32F078xx */
mbed_official 340:28d1f895c6fe 475 /* STM32F091xC STM32F098xx */
mbed_official 340:28d1f895c6fe 476
mbed_official 340:28d1f895c6fe 477 #if defined (STM32F051x8) || defined (STM32F058xx)
mbed_official 340:28d1f895c6fe 478
mbed_official 340:28d1f895c6fe 479 HAL_StatusTypeDef HAL_DAC_Start(DAC_HandleTypeDef* hdac, uint32_t Channel)
mbed_official 340:28d1f895c6fe 480 {
mbed_official 340:28d1f895c6fe 481 /* Check the parameters */
mbed_official 340:28d1f895c6fe 482 assert_param(IS_DAC_CHANNEL(Channel));
mbed_official 340:28d1f895c6fe 483
mbed_official 340:28d1f895c6fe 484 /* Process locked */
mbed_official 340:28d1f895c6fe 485 __HAL_LOCK(hdac);
mbed_official 340:28d1f895c6fe 486
mbed_official 340:28d1f895c6fe 487 /* Change DAC state */
mbed_official 340:28d1f895c6fe 488 hdac->State = HAL_DAC_STATE_BUSY;
mbed_official 340:28d1f895c6fe 489
mbed_official 340:28d1f895c6fe 490 /* Enable the Peripharal */
mbed_official 340:28d1f895c6fe 491 __HAL_DAC_ENABLE(hdac, Channel);
mbed_official 340:28d1f895c6fe 492
mbed_official 340:28d1f895c6fe 493 if(Channel == DAC_CHANNEL_1)
mbed_official 340:28d1f895c6fe 494 {
mbed_official 340:28d1f895c6fe 495 /* Check if software trigger enabled */
mbed_official 630:825f75ca301e 496 if((hdac->Instance->CR & (DAC_CR_TEN1 | DAC_CR_TSEL1)) == (DAC_CR_TEN1 | DAC_CR_TSEL1))
mbed_official 340:28d1f895c6fe 497 {
mbed_official 340:28d1f895c6fe 498 /* Enable the selected DAC software conversion */
mbed_official 630:825f75ca301e 499 SET_BIT(hdac->Instance->SWTRIGR, DAC_SWTRIGR_SWTRIG1);
mbed_official 340:28d1f895c6fe 500 }
mbed_official 340:28d1f895c6fe 501 }
mbed_official 340:28d1f895c6fe 502
mbed_official 340:28d1f895c6fe 503 /* Change DAC state */
mbed_official 340:28d1f895c6fe 504 hdac->State = HAL_DAC_STATE_READY;
mbed_official 340:28d1f895c6fe 505
mbed_official 340:28d1f895c6fe 506 /* Process unlocked */
mbed_official 340:28d1f895c6fe 507 __HAL_UNLOCK(hdac);
mbed_official 340:28d1f895c6fe 508
mbed_official 340:28d1f895c6fe 509 /* Return function status */
mbed_official 340:28d1f895c6fe 510 return HAL_OK;
mbed_official 340:28d1f895c6fe 511 }
mbed_official 340:28d1f895c6fe 512
mbed_official 340:28d1f895c6fe 513 /**
mbed_official 340:28d1f895c6fe 514 * @brief Enables DAC and starts conversion of channel.
mbed_official 340:28d1f895c6fe 515 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 516 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 517 * @param Channel: The selected DAC channel.
mbed_official 340:28d1f895c6fe 518 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 519 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 340:28d1f895c6fe 520 * @param pData: The destination peripheral Buffer address.
mbed_official 340:28d1f895c6fe 521 * @param Length: The length of data to be transferred from memory to DAC peripheral
mbed_official 340:28d1f895c6fe 522 * @param Alignment: Specifies the data alignment for DAC channel.
mbed_official 340:28d1f895c6fe 523 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 524 * @arg DAC_ALIGN_8B_R: 8bit right data alignment selected
mbed_official 340:28d1f895c6fe 525 * @arg DAC_ALIGN_12B_L: 12bit left data alignment selected
mbed_official 340:28d1f895c6fe 526 * @arg DAC_ALIGN_12B_R: 12bit right data alignment selected
mbed_official 340:28d1f895c6fe 527 * @retval HAL status
mbed_official 340:28d1f895c6fe 528 */
mbed_official 340:28d1f895c6fe 529 HAL_StatusTypeDef HAL_DAC_Start_DMA(DAC_HandleTypeDef* hdac, uint32_t Channel, uint32_t* pData, uint32_t Length, uint32_t Alignment)
mbed_official 340:28d1f895c6fe 530 {
mbed_official 340:28d1f895c6fe 531 uint32_t tmpreg = 0;
mbed_official 340:28d1f895c6fe 532
mbed_official 340:28d1f895c6fe 533 /* Check the parameters */
mbed_official 340:28d1f895c6fe 534 assert_param(IS_DAC_CHANNEL(Channel));
mbed_official 340:28d1f895c6fe 535 assert_param(IS_DAC_ALIGN(Alignment));
mbed_official 340:28d1f895c6fe 536
mbed_official 340:28d1f895c6fe 537 /* Process locked */
mbed_official 340:28d1f895c6fe 538 __HAL_LOCK(hdac);
mbed_official 340:28d1f895c6fe 539
mbed_official 340:28d1f895c6fe 540 /* Change DAC state */
mbed_official 340:28d1f895c6fe 541 hdac->State = HAL_DAC_STATE_BUSY;
mbed_official 340:28d1f895c6fe 542
mbed_official 340:28d1f895c6fe 543 /* Set the DMA transfer complete callback for channel1 */
mbed_official 340:28d1f895c6fe 544 hdac->DMA_Handle1->XferCpltCallback = DAC_DMAConvCpltCh1;
mbed_official 340:28d1f895c6fe 545
mbed_official 340:28d1f895c6fe 546 /* Set the DMA half transfer complete callback for channel1 */
mbed_official 340:28d1f895c6fe 547 hdac->DMA_Handle1->XferHalfCpltCallback = DAC_DMAHalfConvCpltCh1;
mbed_official 340:28d1f895c6fe 548
mbed_official 340:28d1f895c6fe 549 /* Set the DMA error callback for channel1 */
mbed_official 340:28d1f895c6fe 550 hdac->DMA_Handle1->XferErrorCallback = DAC_DMAErrorCh1;
mbed_official 340:28d1f895c6fe 551
mbed_official 340:28d1f895c6fe 552 /* Enable the selected DAC channel1 DMA request */
mbed_official 630:825f75ca301e 553 SET_BIT(hdac->Instance->CR, DAC_CR_DMAEN1);
mbed_official 340:28d1f895c6fe 554
mbed_official 340:28d1f895c6fe 555 /* Case of use of channel 1 */
mbed_official 340:28d1f895c6fe 556 switch(Alignment)
mbed_official 340:28d1f895c6fe 557 {
mbed_official 340:28d1f895c6fe 558 case DAC_ALIGN_12B_R:
mbed_official 340:28d1f895c6fe 559 /* Get DHR12R1 address */
mbed_official 340:28d1f895c6fe 560 tmpreg = (uint32_t)&hdac->Instance->DHR12R1;
mbed_official 340:28d1f895c6fe 561 break;
mbed_official 340:28d1f895c6fe 562 case DAC_ALIGN_12B_L:
mbed_official 340:28d1f895c6fe 563 /* Get DHR12L1 address */
mbed_official 340:28d1f895c6fe 564 tmpreg = (uint32_t)&hdac->Instance->DHR12L1;
mbed_official 340:28d1f895c6fe 565 break;
mbed_official 340:28d1f895c6fe 566 case DAC_ALIGN_8B_R:
mbed_official 340:28d1f895c6fe 567 /* Get DHR8R1 address */
mbed_official 340:28d1f895c6fe 568 tmpreg = (uint32_t)&hdac->Instance->DHR8R1;
mbed_official 340:28d1f895c6fe 569 break;
mbed_official 340:28d1f895c6fe 570 default:
mbed_official 340:28d1f895c6fe 571 break;
mbed_official 340:28d1f895c6fe 572 }
mbed_official 340:28d1f895c6fe 573
mbed_official 340:28d1f895c6fe 574 /* Enable the DMA channel */
mbed_official 340:28d1f895c6fe 575 /* Enable the DAC DMA underrun interrupt */
mbed_official 340:28d1f895c6fe 576 __HAL_DAC_ENABLE_IT(hdac, DAC_IT_DMAUDR1);
mbed_official 340:28d1f895c6fe 577
mbed_official 340:28d1f895c6fe 578 /* Enable the DMA channel */
mbed_official 340:28d1f895c6fe 579 HAL_DMA_Start_IT(hdac->DMA_Handle1, (uint32_t)pData, tmpreg, Length);
mbed_official 340:28d1f895c6fe 580
mbed_official 340:28d1f895c6fe 581 /* Enable the DAC DMA underrun interrupt */
mbed_official 340:28d1f895c6fe 582 __HAL_DAC_ENABLE_IT(hdac, DAC_IT_DMAUDR1);
mbed_official 340:28d1f895c6fe 583
mbed_official 340:28d1f895c6fe 584 /* Enable the DMA channel */
mbed_official 340:28d1f895c6fe 585 HAL_DMA_Start_IT(hdac->DMA_Handle1, (uint32_t)pData, tmpreg, Length);
mbed_official 340:28d1f895c6fe 586
mbed_official 340:28d1f895c6fe 587 /* Enable the Peripharal */
mbed_official 340:28d1f895c6fe 588 __HAL_DAC_ENABLE(hdac, Channel);
mbed_official 340:28d1f895c6fe 589
mbed_official 340:28d1f895c6fe 590 /* Process Unlocked */
mbed_official 340:28d1f895c6fe 591 __HAL_UNLOCK(hdac);
mbed_official 340:28d1f895c6fe 592
mbed_official 340:28d1f895c6fe 593 /* Return function status */
mbed_official 340:28d1f895c6fe 594 return HAL_OK;
mbed_official 340:28d1f895c6fe 595 }
mbed_official 340:28d1f895c6fe 596
mbed_official 340:28d1f895c6fe 597 #endif /* STM32F051x8 STM32F058xx */
mbed_official 340:28d1f895c6fe 598
mbed_official 340:28d1f895c6fe 599 #if defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 600 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 601 /* DAC channel 2 is available on top of DAC channel 1 */
mbed_official 340:28d1f895c6fe 602
mbed_official 340:28d1f895c6fe 603 /**
mbed_official 340:28d1f895c6fe 604 * @brief Handles DAC interrupt request
mbed_official 340:28d1f895c6fe 605 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 606 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 607 * @retval None
mbed_official 340:28d1f895c6fe 608 */
mbed_official 340:28d1f895c6fe 609 void HAL_DAC_IRQHandler(DAC_HandleTypeDef* hdac)
mbed_official 340:28d1f895c6fe 610 {
mbed_official 630:825f75ca301e 611 if(__HAL_DAC_GET_IT_SOURCE(hdac, DAC_IT_DMAUDR1))
mbed_official 630:825f75ca301e 612 {
mbed_official 630:825f75ca301e 613 /* Check underrun channel 1 flag */
mbed_official 630:825f75ca301e 614 if(__HAL_DAC_GET_FLAG(hdac, DAC_FLAG_DMAUDR1))
mbed_official 630:825f75ca301e 615 {
mbed_official 630:825f75ca301e 616 /* Change DAC state to error state */
mbed_official 630:825f75ca301e 617 hdac->State = HAL_DAC_STATE_ERROR;
mbed_official 340:28d1f895c6fe 618
mbed_official 630:825f75ca301e 619 /* Set DAC error code to channel1 DMA underrun error */
mbed_official 630:825f75ca301e 620 hdac->ErrorCode |= HAL_DAC_ERROR_DMAUNDERRUNCH1;
mbed_official 340:28d1f895c6fe 621
mbed_official 630:825f75ca301e 622 /* Clear the underrun flag */
mbed_official 630:825f75ca301e 623 __HAL_DAC_CLEAR_FLAG(hdac,DAC_FLAG_DMAUDR1);
mbed_official 340:28d1f895c6fe 624
mbed_official 630:825f75ca301e 625 /* Disable the selected DAC channel1 DMA request */
mbed_official 630:825f75ca301e 626 hdac->Instance->CR &= ~DAC_CR_DMAEN1;
mbed_official 340:28d1f895c6fe 627
mbed_official 630:825f75ca301e 628 /* Error callback */
mbed_official 630:825f75ca301e 629 HAL_DAC_DMAUnderrunCallbackCh1(hdac);
mbed_official 630:825f75ca301e 630 }
mbed_official 340:28d1f895c6fe 631 }
mbed_official 630:825f75ca301e 632 if(__HAL_DAC_GET_IT_SOURCE(hdac, DAC_IT_DMAUDR2))
mbed_official 340:28d1f895c6fe 633 {
mbed_official 630:825f75ca301e 634 /* Check underrun channel 2 flag */
mbed_official 630:825f75ca301e 635 if(__HAL_DAC_GET_FLAG(hdac, DAC_FLAG_DMAUDR2))
mbed_official 630:825f75ca301e 636 {
mbed_official 630:825f75ca301e 637 /* Change DAC state to error state */
mbed_official 630:825f75ca301e 638 hdac->State = HAL_DAC_STATE_ERROR;
mbed_official 340:28d1f895c6fe 639
mbed_official 630:825f75ca301e 640 /* Set DAC error code to channel2 DMA underrun error */
mbed_official 630:825f75ca301e 641 hdac->ErrorCode |= HAL_DAC_ERROR_DMAUNDERRUNCH2;
mbed_official 340:28d1f895c6fe 642
mbed_official 630:825f75ca301e 643 /* Clear the underrun flag */
mbed_official 630:825f75ca301e 644 __HAL_DAC_CLEAR_FLAG(hdac,DAC_FLAG_DMAUDR2);
mbed_official 340:28d1f895c6fe 645
mbed_official 630:825f75ca301e 646 /* Disable the selected DAC channel1 DMA request */
mbed_official 630:825f75ca301e 647 hdac->Instance->CR &= ~DAC_CR_DMAEN2;
mbed_official 340:28d1f895c6fe 648
mbed_official 630:825f75ca301e 649 /* Error callback */
mbed_official 630:825f75ca301e 650 HAL_DACEx_DMAUnderrunCallbackCh2(hdac);
mbed_official 630:825f75ca301e 651 }
mbed_official 340:28d1f895c6fe 652 }
mbed_official 340:28d1f895c6fe 653 }
mbed_official 340:28d1f895c6fe 654
mbed_official 340:28d1f895c6fe 655 #endif /* STM32F071xB STM32F072xB STM32F078xx */
mbed_official 340:28d1f895c6fe 656 /* STM32F091xC STM32F098xx */
mbed_official 340:28d1f895c6fe 657
mbed_official 340:28d1f895c6fe 658 #if defined (STM32F051x8) || defined (STM32F058xx)
mbed_official 340:28d1f895c6fe 659 /* DAC channel 2 is NOT available. Only DAC channel 1 is available */
mbed_official 340:28d1f895c6fe 660
mbed_official 340:28d1f895c6fe 661 /**
mbed_official 340:28d1f895c6fe 662 * @brief Handles DAC interrupt request
mbed_official 340:28d1f895c6fe 663 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 664 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 665 * @retval None
mbed_official 340:28d1f895c6fe 666 */
mbed_official 340:28d1f895c6fe 667 void HAL_DAC_IRQHandler(DAC_HandleTypeDef* hdac)
mbed_official 340:28d1f895c6fe 668 {
mbed_official 630:825f75ca301e 669 if(__HAL_DAC_GET_IT_SOURCE(hdac, DAC_IT_DMAUDR1))
mbed_official 630:825f75ca301e 670 {
mbed_official 340:28d1f895c6fe 671 /* Check Overrun flag */
mbed_official 340:28d1f895c6fe 672 if(__HAL_DAC_GET_FLAG(hdac, DAC_FLAG_DMAUDR1))
mbed_official 630:825f75ca301e 673 {
mbed_official 630:825f75ca301e 674 /* Change DAC state to error state */
mbed_official 630:825f75ca301e 675 hdac->State = HAL_DAC_STATE_ERROR;
mbed_official 340:28d1f895c6fe 676
mbed_official 630:825f75ca301e 677 /* Set DAC error code to chanel1 DMA underrun error */
mbed_official 630:825f75ca301e 678 hdac->ErrorCode |= HAL_DAC_ERROR_DMAUNDERRUNCH1;
mbed_official 340:28d1f895c6fe 679
mbed_official 630:825f75ca301e 680 /* Clear the underrun flag */
mbed_official 630:825f75ca301e 681 __HAL_DAC_CLEAR_FLAG(hdac,DAC_FLAG_DMAUDR1);
mbed_official 340:28d1f895c6fe 682
mbed_official 630:825f75ca301e 683 /* Disable the selected DAC channel1 DMA request */
mbed_official 630:825f75ca301e 684 hdac->Instance->CR &= ~DAC_CR_DMAEN1;
mbed_official 340:28d1f895c6fe 685
mbed_official 630:825f75ca301e 686 /* Error callback */
mbed_official 630:825f75ca301e 687 HAL_DAC_DMAUnderrunCallbackCh1(hdac);
mbed_official 630:825f75ca301e 688 }
mbed_official 340:28d1f895c6fe 689 }
mbed_official 340:28d1f895c6fe 690 }
mbed_official 340:28d1f895c6fe 691
mbed_official 340:28d1f895c6fe 692 #endif /* STM32F051x8 STM32F058xx */
mbed_official 340:28d1f895c6fe 693
mbed_official 630:825f75ca301e 694 /**
mbed_official 630:825f75ca301e 695 * @}
mbed_official 630:825f75ca301e 696 */
mbed_official 630:825f75ca301e 697
mbed_official 630:825f75ca301e 698 /**
mbed_official 630:825f75ca301e 699 * @}
mbed_official 630:825f75ca301e 700 */
mbed_official 630:825f75ca301e 701
mbed_official 630:825f75ca301e 702 #if defined(STM32F051x8) || defined(STM32F058xx) || \
mbed_official 630:825f75ca301e 703 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 630:825f75ca301e 704 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 630:825f75ca301e 705
mbed_official 630:825f75ca301e 706 /** @addtogroup DAC_Private_Functions
mbed_official 630:825f75ca301e 707 * @{
mbed_official 630:825f75ca301e 708 */
mbed_official 630:825f75ca301e 709
mbed_official 630:825f75ca301e 710 /**
mbed_official 630:825f75ca301e 711 * @brief DMA conversion complete callback.
mbed_official 630:825f75ca301e 712 * @param hdma: pointer to a DMA_HandleTypeDef structure that contains
mbed_official 630:825f75ca301e 713 * the configuration information for the specified DMA module.
mbed_official 630:825f75ca301e 714 * @retval None
mbed_official 630:825f75ca301e 715 */
mbed_official 630:825f75ca301e 716 static void DAC_DMAConvCpltCh1(DMA_HandleTypeDef *hdma)
mbed_official 630:825f75ca301e 717 {
mbed_official 630:825f75ca301e 718 DAC_HandleTypeDef* hdac = ( DAC_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent;
mbed_official 630:825f75ca301e 719
mbed_official 630:825f75ca301e 720 HAL_DAC_ConvCpltCallbackCh1(hdac);
mbed_official 630:825f75ca301e 721
mbed_official 630:825f75ca301e 722 hdac->State= HAL_DAC_STATE_READY;
mbed_official 630:825f75ca301e 723 }
mbed_official 630:825f75ca301e 724
mbed_official 630:825f75ca301e 725 /**
mbed_official 630:825f75ca301e 726 * @brief DMA half transfer complete callback.
mbed_official 630:825f75ca301e 727 * @param hdma: pointer to a DMA_HandleTypeDef structure that contains
mbed_official 630:825f75ca301e 728 * the configuration information for the specified DMA module.
mbed_official 630:825f75ca301e 729 * @retval None
mbed_official 630:825f75ca301e 730 */
mbed_official 630:825f75ca301e 731 static void DAC_DMAHalfConvCpltCh1(DMA_HandleTypeDef *hdma)
mbed_official 630:825f75ca301e 732 {
mbed_official 630:825f75ca301e 733 DAC_HandleTypeDef* hdac = ( DAC_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent;
mbed_official 630:825f75ca301e 734 /* Conversion complete callback */
mbed_official 630:825f75ca301e 735 HAL_DAC_ConvHalfCpltCallbackCh1(hdac);
mbed_official 630:825f75ca301e 736 }
mbed_official 630:825f75ca301e 737
mbed_official 630:825f75ca301e 738 /**
mbed_official 630:825f75ca301e 739 * @brief DMA error callback
mbed_official 630:825f75ca301e 740 * @param hdma: pointer to a DMA_HandleTypeDef structure that contains
mbed_official 630:825f75ca301e 741 * the configuration information for the specified DMA module.
mbed_official 630:825f75ca301e 742 * @retval None
mbed_official 630:825f75ca301e 743 */
mbed_official 630:825f75ca301e 744 static void DAC_DMAErrorCh1(DMA_HandleTypeDef *hdma)
mbed_official 630:825f75ca301e 745 {
mbed_official 630:825f75ca301e 746 DAC_HandleTypeDef* hdac = ( DAC_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent;
mbed_official 630:825f75ca301e 747
mbed_official 630:825f75ca301e 748 /* Set DAC error code to DMA error */
mbed_official 630:825f75ca301e 749 hdac->ErrorCode |= HAL_DAC_ERROR_DMA;
mbed_official 630:825f75ca301e 750
mbed_official 630:825f75ca301e 751 HAL_DAC_ErrorCallbackCh1(hdac);
mbed_official 630:825f75ca301e 752
mbed_official 630:825f75ca301e 753 hdac->State= HAL_DAC_STATE_READY;
mbed_official 630:825f75ca301e 754 }
mbed_official 630:825f75ca301e 755 /**
mbed_official 630:825f75ca301e 756 * @}
mbed_official 630:825f75ca301e 757 */
mbed_official 630:825f75ca301e 758 #endif /* STM32F051x8 STM32F058xx */
mbed_official 630:825f75ca301e 759 /* STM32F071xB STM32F072xB STM32F078xx */
mbed_official 630:825f75ca301e 760 /* STM32F091xC STM32F098xx */
mbed_official 630:825f75ca301e 761
mbed_official 630:825f75ca301e 762 #if defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 630:825f75ca301e 763 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 630:825f75ca301e 764
mbed_official 630:825f75ca301e 765 /** @addtogroup DAC_Private_Functions
mbed_official 630:825f75ca301e 766 * @{
mbed_official 630:825f75ca301e 767 */
mbed_official 630:825f75ca301e 768
mbed_official 630:825f75ca301e 769 /**
mbed_official 630:825f75ca301e 770 * @brief DMA conversion complete callback.
mbed_official 630:825f75ca301e 771 * @param hdma: pointer to a DMA_HandleTypeDef structure that contains
mbed_official 630:825f75ca301e 772 * the configuration information for the specified DMA module.
mbed_official 630:825f75ca301e 773 * @retval None
mbed_official 630:825f75ca301e 774 */
mbed_official 630:825f75ca301e 775 void DAC_DMAConvCpltCh2(DMA_HandleTypeDef *hdma)
mbed_official 630:825f75ca301e 776 {
mbed_official 630:825f75ca301e 777 DAC_HandleTypeDef* hdac = ( DAC_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent;
mbed_official 630:825f75ca301e 778
mbed_official 630:825f75ca301e 779 HAL_DACEx_ConvCpltCallbackCh2(hdac);
mbed_official 630:825f75ca301e 780
mbed_official 630:825f75ca301e 781 hdac->State= HAL_DAC_STATE_READY;
mbed_official 630:825f75ca301e 782 }
mbed_official 630:825f75ca301e 783
mbed_official 630:825f75ca301e 784 /**
mbed_official 630:825f75ca301e 785 * @brief DMA half transfer complete callback.
mbed_official 630:825f75ca301e 786 * @param hdma: pointer to a DMA_HandleTypeDef structure that contains
mbed_official 630:825f75ca301e 787 * the configuration information for the specified DMA module.
mbed_official 630:825f75ca301e 788 * @retval None
mbed_official 630:825f75ca301e 789 */
mbed_official 630:825f75ca301e 790 void DAC_DMAHalfConvCpltCh2(DMA_HandleTypeDef *hdma)
mbed_official 630:825f75ca301e 791 {
mbed_official 630:825f75ca301e 792 DAC_HandleTypeDef* hdac = ( DAC_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent;
mbed_official 630:825f75ca301e 793 /* Conversion complete callback */
mbed_official 630:825f75ca301e 794 HAL_DACEx_ConvHalfCpltCallbackCh2(hdac);
mbed_official 630:825f75ca301e 795 }
mbed_official 630:825f75ca301e 796
mbed_official 630:825f75ca301e 797 /**
mbed_official 630:825f75ca301e 798 * @brief DMA error callback
mbed_official 630:825f75ca301e 799 * @param hdma: pointer to a DMA_HandleTypeDef structure that contains
mbed_official 630:825f75ca301e 800 * the configuration information for the specified DMA module.
mbed_official 630:825f75ca301e 801 * @retval None
mbed_official 630:825f75ca301e 802 */
mbed_official 630:825f75ca301e 803 void DAC_DMAErrorCh2(DMA_HandleTypeDef *hdma)
mbed_official 630:825f75ca301e 804 {
mbed_official 630:825f75ca301e 805 DAC_HandleTypeDef* hdac = ( DAC_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent;
mbed_official 630:825f75ca301e 806
mbed_official 630:825f75ca301e 807 /* Set DAC error code to DMA error */
mbed_official 630:825f75ca301e 808 hdac->ErrorCode |= HAL_DAC_ERROR_DMA;
mbed_official 630:825f75ca301e 809
mbed_official 630:825f75ca301e 810 HAL_DACEx_ErrorCallbackCh2(hdac);
mbed_official 630:825f75ca301e 811
mbed_official 630:825f75ca301e 812 hdac->State= HAL_DAC_STATE_READY;
mbed_official 630:825f75ca301e 813 }
mbed_official 630:825f75ca301e 814
mbed_official 630:825f75ca301e 815 /**
mbed_official 630:825f75ca301e 816 * @}
mbed_official 630:825f75ca301e 817 */
mbed_official 630:825f75ca301e 818
mbed_official 630:825f75ca301e 819 #endif /* STM32F071xB STM32F072xB STM32F078xx */
mbed_official 630:825f75ca301e 820 /* STM32F091xC STM32F098xx */
mbed_official 630:825f75ca301e 821
mbed_official 630:825f75ca301e 822 /**
mbed_official 630:825f75ca301e 823 * @}
mbed_official 630:825f75ca301e 824 */
mbed_official 630:825f75ca301e 825
mbed_official 630:825f75ca301e 826 /** @defgroup DACEx DACEx
mbed_official 630:825f75ca301e 827 * @brief DACEx driver module
mbed_official 630:825f75ca301e 828 * @{
mbed_official 630:825f75ca301e 829 */
mbed_official 630:825f75ca301e 830
mbed_official 630:825f75ca301e 831 /* Private typedef -----------------------------------------------------------*/
mbed_official 630:825f75ca301e 832 /* Private define ------------------------------------------------------------*/
mbed_official 630:825f75ca301e 833 /* Private macro -------------------------------------------------------------*/
mbed_official 630:825f75ca301e 834 /** @defgroup DACEx_Private_Macros DACEx Private Macros
mbed_official 630:825f75ca301e 835 * @{
mbed_official 630:825f75ca301e 836 */
mbed_official 630:825f75ca301e 837 /**
mbed_official 630:825f75ca301e 838 * @}
mbed_official 630:825f75ca301e 839 */
mbed_official 630:825f75ca301e 840
mbed_official 630:825f75ca301e 841 /* Private variables ---------------------------------------------------------*/
mbed_official 630:825f75ca301e 842 /* Private function prototypes -----------------------------------------------*/
mbed_official 630:825f75ca301e 843 /* Private functions ---------------------------------------------------------*/
mbed_official 630:825f75ca301e 844
mbed_official 630:825f75ca301e 845 /** @defgroup DACEx_Exported_Functions DACEx Exported Functions
mbed_official 630:825f75ca301e 846 * @{
mbed_official 630:825f75ca301e 847 */
mbed_official 630:825f75ca301e 848
mbed_official 630:825f75ca301e 849 /** @defgroup DACEx_Exported_Functions_Group1 Extended features functions
mbed_official 630:825f75ca301e 850 * @brief Extended features functions
mbed_official 630:825f75ca301e 851 *
mbed_official 630:825f75ca301e 852 @verbatim
mbed_official 630:825f75ca301e 853 ==============================================================================
mbed_official 630:825f75ca301e 854 ##### Extended features functions #####
mbed_official 630:825f75ca301e 855 ==============================================================================
mbed_official 630:825f75ca301e 856 [..] This section provides functions allowing to:
mbed_official 630:825f75ca301e 857 (+) Start conversion.
mbed_official 630:825f75ca301e 858 (+) Stop conversion.
mbed_official 630:825f75ca301e 859 (+) Start conversion and enable DMA transfer.
mbed_official 630:825f75ca301e 860 (+) Stop conversion and disable DMA transfer.
mbed_official 630:825f75ca301e 861 (+) Get result of conversion.
mbed_official 630:825f75ca301e 862 (+) Get result of dual mode conversion.
mbed_official 630:825f75ca301e 863
mbed_official 630:825f75ca301e 864 @endverbatim
mbed_official 630:825f75ca301e 865 * @{
mbed_official 630:825f75ca301e 866 */
mbed_official 630:825f75ca301e 867
mbed_official 340:28d1f895c6fe 868 #if defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 869 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 870
mbed_official 340:28d1f895c6fe 871 /**
mbed_official 340:28d1f895c6fe 872 * @brief Returns the last data output value of the selected DAC channel.
mbed_official 340:28d1f895c6fe 873 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 874 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 875 * @retval The selected DAC channel data output value.
mbed_official 340:28d1f895c6fe 876 */
mbed_official 340:28d1f895c6fe 877 uint32_t HAL_DACEx_DualGetValue(DAC_HandleTypeDef* hdac)
mbed_official 340:28d1f895c6fe 878 {
mbed_official 340:28d1f895c6fe 879 uint32_t tmp = 0;
mbed_official 340:28d1f895c6fe 880
mbed_official 340:28d1f895c6fe 881 tmp |= hdac->Instance->DOR1;
mbed_official 340:28d1f895c6fe 882
mbed_official 340:28d1f895c6fe 883 /* DAC channel 2 is present in DAC 1 */
mbed_official 340:28d1f895c6fe 884 tmp |= hdac->Instance->DOR2 << 16;
mbed_official 340:28d1f895c6fe 885
mbed_official 340:28d1f895c6fe 886 /* Returns the DAC channel data output register value */
mbed_official 340:28d1f895c6fe 887 return tmp;
mbed_official 340:28d1f895c6fe 888 }
mbed_official 340:28d1f895c6fe 889
mbed_official 340:28d1f895c6fe 890 #endif /* STM32F071xB STM32F072xB STM32F078xx */
mbed_official 340:28d1f895c6fe 891 /* STM32F091xC STM32F098xx */
mbed_official 340:28d1f895c6fe 892
mbed_official 340:28d1f895c6fe 893 #if defined (STM32F051x8) || defined (STM32F058xx)
mbed_official 340:28d1f895c6fe 894
mbed_official 340:28d1f895c6fe 895 /**
mbed_official 340:28d1f895c6fe 896 * @brief Returns the last data output value of the selected DAC channel.
mbed_official 340:28d1f895c6fe 897 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 898 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 899 * @retval The selected DAC channel data output value.
mbed_official 340:28d1f895c6fe 900 */
mbed_official 340:28d1f895c6fe 901 uint32_t HAL_DACEx_DualGetValue(DAC_HandleTypeDef* hdac)
mbed_official 340:28d1f895c6fe 902 {
mbed_official 340:28d1f895c6fe 903 uint32_t tmp = 0;
mbed_official 340:28d1f895c6fe 904
mbed_official 340:28d1f895c6fe 905 tmp |= hdac->Instance->DOR1;
mbed_official 340:28d1f895c6fe 906
mbed_official 340:28d1f895c6fe 907 /* Returns the DAC channel data output register value */
mbed_official 340:28d1f895c6fe 908 return tmp;
mbed_official 340:28d1f895c6fe 909 }
mbed_official 340:28d1f895c6fe 910
mbed_official 340:28d1f895c6fe 911 #endif /* STM32F051x8 STM32F058xx */
mbed_official 340:28d1f895c6fe 912
mbed_official 340:28d1f895c6fe 913 #if defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 914 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 915
mbed_official 340:28d1f895c6fe 916 /**
mbed_official 340:28d1f895c6fe 917 * @brief Enables or disables the selected DAC channel wave generation.
mbed_official 340:28d1f895c6fe 918 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 919 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 920 * @param Channel: The selected DAC channel.
mbed_official 340:28d1f895c6fe 921 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 922 * DAC_CHANNEL_1 / DAC_CHANNEL_2
mbed_official 340:28d1f895c6fe 923 * @param Amplitude: Select max triangle amplitude.
mbed_official 340:28d1f895c6fe 924 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 925 * @arg DAC_TRIANGLEAMPLITUDE_1: Select max triangle amplitude of 1
mbed_official 340:28d1f895c6fe 926 * @arg DAC_TRIANGLEAMPLITUDE_3: Select max triangle amplitude of 3
mbed_official 340:28d1f895c6fe 927 * @arg DAC_TRIANGLEAMPLITUDE_7: Select max triangle amplitude of 7
mbed_official 340:28d1f895c6fe 928 * @arg DAC_TRIANGLEAMPLITUDE_15: Select max triangle amplitude of 15
mbed_official 340:28d1f895c6fe 929 * @arg DAC_TRIANGLEAMPLITUDE_31: Select max triangle amplitude of 31
mbed_official 340:28d1f895c6fe 930 * @arg DAC_TRIANGLEAMPLITUDE_63: Select max triangle amplitude of 63
mbed_official 340:28d1f895c6fe 931 * @arg DAC_TRIANGLEAMPLITUDE_127: Select max triangle amplitude of 127
mbed_official 340:28d1f895c6fe 932 * @arg DAC_TRIANGLEAMPLITUDE_255: Select max triangle amplitude of 255
mbed_official 340:28d1f895c6fe 933 * @arg DAC_TRIANGLEAMPLITUDE_511: Select max triangle amplitude of 511
mbed_official 340:28d1f895c6fe 934 * @arg DAC_TRIANGLEAMPLITUDE_1023: Select max triangle amplitude of 1023
mbed_official 340:28d1f895c6fe 935 * @arg DAC_TRIANGLEAMPLITUDE_2047: Select max triangle amplitude of 2047
mbed_official 340:28d1f895c6fe 936 * @arg DAC_TRIANGLEAMPLITUDE_4095: Select max triangle amplitude of 4095
mbed_official 340:28d1f895c6fe 937 * @retval HAL status
mbed_official 340:28d1f895c6fe 938 */
mbed_official 340:28d1f895c6fe 939 HAL_StatusTypeDef HAL_DACEx_TriangleWaveGenerate(DAC_HandleTypeDef* hdac, uint32_t Channel, uint32_t Amplitude)
mbed_official 340:28d1f895c6fe 940 {
mbed_official 340:28d1f895c6fe 941 /* Check the parameters */
mbed_official 340:28d1f895c6fe 942 assert_param(IS_DAC_CHANNEL(Channel));
mbed_official 340:28d1f895c6fe 943 assert_param(IS_DAC_LFSR_UNMASK_TRIANGLE_AMPLITUDE(Amplitude));
mbed_official 340:28d1f895c6fe 944
mbed_official 340:28d1f895c6fe 945 /* Process locked */
mbed_official 340:28d1f895c6fe 946 __HAL_LOCK(hdac);
mbed_official 340:28d1f895c6fe 947
mbed_official 340:28d1f895c6fe 948 /* Change DAC state */
mbed_official 340:28d1f895c6fe 949 hdac->State = HAL_DAC_STATE_BUSY;
mbed_official 340:28d1f895c6fe 950
mbed_official 340:28d1f895c6fe 951 /* Enable the selected wave generation for the selected DAC channel */
mbed_official 630:825f75ca301e 952 MODIFY_REG(hdac->Instance->CR, ((DAC_CR_WAVE1)|(DAC_CR_MAMP1))<<Channel, (DAC_CR_WAVE1_1 | Amplitude) << Channel);
mbed_official 340:28d1f895c6fe 953
mbed_official 340:28d1f895c6fe 954 /* Change DAC state */
mbed_official 340:28d1f895c6fe 955 hdac->State = HAL_DAC_STATE_READY;
mbed_official 340:28d1f895c6fe 956
mbed_official 340:28d1f895c6fe 957 /* Process unlocked */
mbed_official 340:28d1f895c6fe 958 __HAL_UNLOCK(hdac);
mbed_official 340:28d1f895c6fe 959
mbed_official 340:28d1f895c6fe 960 /* Return function status */
mbed_official 340:28d1f895c6fe 961 return HAL_OK;
mbed_official 340:28d1f895c6fe 962 }
mbed_official 340:28d1f895c6fe 963
mbed_official 340:28d1f895c6fe 964 /**
mbed_official 340:28d1f895c6fe 965 * @brief Enables or disables the selected DAC channel wave generation.
mbed_official 340:28d1f895c6fe 966 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 967 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 968 * @param Channel: The selected DAC channel.
mbed_official 340:28d1f895c6fe 969 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 970 * DAC_CHANNEL_1 / DAC_CHANNEL_2
mbed_official 340:28d1f895c6fe 971 * @param Amplitude: Unmask DAC channel LFSR for noise wave generation.
mbed_official 340:28d1f895c6fe 972 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 973 * @arg DAC_LFSRUNMASK_BIT0: Unmask DAC channel LFSR bit0 for noise wave generation
mbed_official 340:28d1f895c6fe 974 * @arg DAC_LFSRUNMASK_BITS1_0: Unmask DAC channel LFSR bit[1:0] for noise wave generation
mbed_official 340:28d1f895c6fe 975 * @arg DAC_LFSRUNMASK_BITS2_0: Unmask DAC channel LFSR bit[2:0] for noise wave generation
mbed_official 340:28d1f895c6fe 976 * @arg DAC_LFSRUNMASK_BITS3_0: Unmask DAC channel LFSR bit[3:0] for noise wave generation
mbed_official 340:28d1f895c6fe 977 * @arg DAC_LFSRUNMASK_BITS4_0: Unmask DAC channel LFSR bit[4:0] for noise wave generation
mbed_official 340:28d1f895c6fe 978 * @arg DAC_LFSRUNMASK_BITS5_0: Unmask DAC channel LFSR bit[5:0] for noise wave generation
mbed_official 340:28d1f895c6fe 979 * @arg DAC_LFSRUNMASK_BITS6_0: Unmask DAC channel LFSR bit[6:0] for noise wave generation
mbed_official 340:28d1f895c6fe 980 * @arg DAC_LFSRUNMASK_BITS7_0: Unmask DAC channel LFSR bit[7:0] for noise wave generation
mbed_official 340:28d1f895c6fe 981 * @arg DAC_LFSRUNMASK_BITS8_0: Unmask DAC channel LFSR bit[8:0] for noise wave generation
mbed_official 340:28d1f895c6fe 982 * @arg DAC_LFSRUNMASK_BITS9_0: Unmask DAC channel LFSR bit[9:0] for noise wave generation
mbed_official 340:28d1f895c6fe 983 * @arg DAC_LFSRUNMASK_BITS10_0: Unmask DAC channel LFSR bit[10:0] for noise wave generation
mbed_official 340:28d1f895c6fe 984 * @arg DAC_LFSRUNMASK_BITS11_0: Unmask DAC channel LFSR bit[11:0] for noise wave generation
mbed_official 340:28d1f895c6fe 985 * @retval HAL status
mbed_official 340:28d1f895c6fe 986 */
mbed_official 340:28d1f895c6fe 987 HAL_StatusTypeDef HAL_DACEx_NoiseWaveGenerate(DAC_HandleTypeDef* hdac, uint32_t Channel, uint32_t Amplitude)
mbed_official 340:28d1f895c6fe 988 {
mbed_official 340:28d1f895c6fe 989 /* Check the parameters */
mbed_official 340:28d1f895c6fe 990 assert_param(IS_DAC_CHANNEL(Channel));
mbed_official 340:28d1f895c6fe 991 assert_param(IS_DAC_LFSR_UNMASK_TRIANGLE_AMPLITUDE(Amplitude));
mbed_official 340:28d1f895c6fe 992
mbed_official 340:28d1f895c6fe 993 /* Process locked */
mbed_official 340:28d1f895c6fe 994 __HAL_LOCK(hdac);
mbed_official 340:28d1f895c6fe 995
mbed_official 340:28d1f895c6fe 996 /* Change DAC state */
mbed_official 340:28d1f895c6fe 997 hdac->State = HAL_DAC_STATE_BUSY;
mbed_official 340:28d1f895c6fe 998
mbed_official 340:28d1f895c6fe 999 /* Enable the selected wave generation for the selected DAC channel */
mbed_official 630:825f75ca301e 1000 MODIFY_REG(hdac->Instance->CR, ((DAC_CR_WAVE1)|(DAC_CR_MAMP1))<<Channel, (DAC_CR_WAVE1_0 | Amplitude) << Channel);
mbed_official 340:28d1f895c6fe 1001
mbed_official 340:28d1f895c6fe 1002 /* Change DAC state */
mbed_official 340:28d1f895c6fe 1003 hdac->State = HAL_DAC_STATE_READY;
mbed_official 340:28d1f895c6fe 1004
mbed_official 340:28d1f895c6fe 1005 /* Process unlocked */
mbed_official 340:28d1f895c6fe 1006 __HAL_UNLOCK(hdac);
mbed_official 340:28d1f895c6fe 1007
mbed_official 340:28d1f895c6fe 1008 /* Return function status */
mbed_official 340:28d1f895c6fe 1009 return HAL_OK;
mbed_official 340:28d1f895c6fe 1010 }
mbed_official 340:28d1f895c6fe 1011
mbed_official 340:28d1f895c6fe 1012 #endif /* STM32F071xB STM32F072xB STM32F078xx */
mbed_official 340:28d1f895c6fe 1013 /* STM32F091xC STM32F098xx */
mbed_official 340:28d1f895c6fe 1014
mbed_official 630:825f75ca301e 1015 /**
mbed_official 630:825f75ca301e 1016 * @}
mbed_official 630:825f75ca301e 1017 */
mbed_official 630:825f75ca301e 1018
mbed_official 630:825f75ca301e 1019 /**
mbed_official 630:825f75ca301e 1020 * @}
mbed_official 630:825f75ca301e 1021 */
mbed_official 630:825f75ca301e 1022
mbed_official 340:28d1f895c6fe 1023 #if defined(STM32F051x8) || defined(STM32F058xx) || \
mbed_official 340:28d1f895c6fe 1024 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 1025 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 1026
mbed_official 630:825f75ca301e 1027 /** @addtogroup DACEx_Exported_Functions
mbed_official 630:825f75ca301e 1028 * @{
mbed_official 630:825f75ca301e 1029 */
mbed_official 630:825f75ca301e 1030
mbed_official 630:825f75ca301e 1031 /** @addtogroup DACEx_Exported_Functions_Group1
mbed_official 630:825f75ca301e 1032 * @brief Extended features functions
mbed_official 630:825f75ca301e 1033 * @{
mbed_official 630:825f75ca301e 1034 */
mbed_official 630:825f75ca301e 1035
mbed_official 340:28d1f895c6fe 1036 /**
mbed_official 340:28d1f895c6fe 1037 * @brief Set the specified data holding register value for dual DAC channel.
mbed_official 340:28d1f895c6fe 1038 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 1039 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 1040 * @param Alignment: Specifies the data alignment for dual channel DAC.
mbed_official 340:28d1f895c6fe 1041 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 1042 * DAC_ALIGN_8B_R: 8bit right data alignment selected
mbed_official 340:28d1f895c6fe 1043 * DAC_ALIGN_12B_L: 12bit left data alignment selected
mbed_official 340:28d1f895c6fe 1044 * DAC_ALIGN_12B_R: 12bit right data alignment selected
mbed_official 340:28d1f895c6fe 1045 * @param Data1: Data for DAC Channel2 to be loaded in the selected data holding register.
mbed_official 340:28d1f895c6fe 1046 * @param Data2: Data for DAC Channel1 to be loaded in the selected data holding register.
mbed_official 340:28d1f895c6fe 1047 * @note In dual mode, a unique register access is required to write in both
mbed_official 340:28d1f895c6fe 1048 * DAC channels at the same time.
mbed_official 340:28d1f895c6fe 1049 * @retval HAL status
mbed_official 340:28d1f895c6fe 1050 */
mbed_official 340:28d1f895c6fe 1051 HAL_StatusTypeDef HAL_DACEx_DualSetValue(DAC_HandleTypeDef* hdac, uint32_t Alignment, uint32_t Data1, uint32_t Data2)
mbed_official 340:28d1f895c6fe 1052 {
mbed_official 340:28d1f895c6fe 1053 uint32_t data = 0, tmp = 0;
mbed_official 340:28d1f895c6fe 1054
mbed_official 340:28d1f895c6fe 1055 /* Check the parameters */
mbed_official 340:28d1f895c6fe 1056 assert_param(IS_DAC_ALIGN(Alignment));
mbed_official 340:28d1f895c6fe 1057 assert_param(IS_DAC_DATA(Data1));
mbed_official 340:28d1f895c6fe 1058 assert_param(IS_DAC_DATA(Data2));
mbed_official 340:28d1f895c6fe 1059
mbed_official 340:28d1f895c6fe 1060 /* Calculate and set dual DAC data holding register value */
mbed_official 340:28d1f895c6fe 1061 if (Alignment == DAC_ALIGN_8B_R)
mbed_official 340:28d1f895c6fe 1062 {
mbed_official 340:28d1f895c6fe 1063 data = ((uint32_t)Data2 << 8) | Data1;
mbed_official 340:28d1f895c6fe 1064 }
mbed_official 340:28d1f895c6fe 1065 else
mbed_official 340:28d1f895c6fe 1066 {
mbed_official 340:28d1f895c6fe 1067 data = ((uint32_t)Data2 << 16) | Data1;
mbed_official 340:28d1f895c6fe 1068 }
mbed_official 340:28d1f895c6fe 1069
mbed_official 340:28d1f895c6fe 1070 tmp = (uint32_t)hdac->Instance;
mbed_official 630:825f75ca301e 1071 tmp += DAC_DHR12RD_ALIGNMENT(Alignment);
mbed_official 340:28d1f895c6fe 1072
mbed_official 340:28d1f895c6fe 1073 /* Set the dual DAC selected data holding register */
mbed_official 340:28d1f895c6fe 1074 *(__IO uint32_t *)tmp = data;
mbed_official 340:28d1f895c6fe 1075
mbed_official 340:28d1f895c6fe 1076 /* Return function status */
mbed_official 340:28d1f895c6fe 1077 return HAL_OK;
mbed_official 340:28d1f895c6fe 1078 }
mbed_official 340:28d1f895c6fe 1079
mbed_official 340:28d1f895c6fe 1080 /**
mbed_official 340:28d1f895c6fe 1081 * @}
mbed_official 340:28d1f895c6fe 1082 */
mbed_official 340:28d1f895c6fe 1083
mbed_official 340:28d1f895c6fe 1084 /**
mbed_official 340:28d1f895c6fe 1085 * @}
mbed_official 340:28d1f895c6fe 1086 */
mbed_official 340:28d1f895c6fe 1087
mbed_official 340:28d1f895c6fe 1088 #endif /* STM32F051x8 STM32F058xx */
mbed_official 340:28d1f895c6fe 1089 /* STM32F071xB STM32F072xB STM32F078xx */
mbed_official 340:28d1f895c6fe 1090 /* STM32F091xC STM32F098xx */
mbed_official 340:28d1f895c6fe 1091
mbed_official 340:28d1f895c6fe 1092 #if defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 1093 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 1094
mbed_official 340:28d1f895c6fe 1095 /** @addtogroup DACEx_Exported_Functions
mbed_official 340:28d1f895c6fe 1096 * @{
mbed_official 340:28d1f895c6fe 1097 */
mbed_official 340:28d1f895c6fe 1098
mbed_official 340:28d1f895c6fe 1099 /** @addtogroup DACEx_Exported_Functions_Group1
mbed_official 340:28d1f895c6fe 1100 * @brief Extended features functions
mbed_official 340:28d1f895c6fe 1101 * @{
mbed_official 340:28d1f895c6fe 1102 */
mbed_official 630:825f75ca301e 1103
mbed_official 340:28d1f895c6fe 1104 /**
mbed_official 340:28d1f895c6fe 1105 * @brief Conversion complete callback in non blocking mode for Channel2
mbed_official 340:28d1f895c6fe 1106 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 1107 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 1108 * @retval None
mbed_official 340:28d1f895c6fe 1109 */
mbed_official 340:28d1f895c6fe 1110 __weak void HAL_DACEx_ConvCpltCallbackCh2(DAC_HandleTypeDef* hdac)
mbed_official 340:28d1f895c6fe 1111 {
mbed_official 340:28d1f895c6fe 1112 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 340:28d1f895c6fe 1113 the HAL_DAC_ConvCpltCallback could be implemented in the user file
mbed_official 340:28d1f895c6fe 1114 */
mbed_official 340:28d1f895c6fe 1115 }
mbed_official 340:28d1f895c6fe 1116
mbed_official 340:28d1f895c6fe 1117 /**
mbed_official 340:28d1f895c6fe 1118 * @brief Conversion half DMA transfer callback in non blocking mode for Channel2
mbed_official 340:28d1f895c6fe 1119 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 1120 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 1121 * @retval None
mbed_official 340:28d1f895c6fe 1122 */
mbed_official 340:28d1f895c6fe 1123 __weak void HAL_DACEx_ConvHalfCpltCallbackCh2(DAC_HandleTypeDef* hdac)
mbed_official 340:28d1f895c6fe 1124 {
mbed_official 340:28d1f895c6fe 1125 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 340:28d1f895c6fe 1126 the HAL_DAC_ConvHalfCpltCallbackCh2 could be implemented in the user file
mbed_official 340:28d1f895c6fe 1127 */
mbed_official 340:28d1f895c6fe 1128 }
mbed_official 340:28d1f895c6fe 1129
mbed_official 340:28d1f895c6fe 1130 /**
mbed_official 340:28d1f895c6fe 1131 * @brief Error DAC callback for Channel2.
mbed_official 340:28d1f895c6fe 1132 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 1133 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 1134 * @retval None
mbed_official 340:28d1f895c6fe 1135 */
mbed_official 340:28d1f895c6fe 1136 __weak void HAL_DACEx_ErrorCallbackCh2(DAC_HandleTypeDef *hdac)
mbed_official 340:28d1f895c6fe 1137 {
mbed_official 340:28d1f895c6fe 1138 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 340:28d1f895c6fe 1139 the HAL_DAC_ErrorCallback could be implemented in the user file
mbed_official 340:28d1f895c6fe 1140 */
mbed_official 340:28d1f895c6fe 1141 }
mbed_official 340:28d1f895c6fe 1142
mbed_official 340:28d1f895c6fe 1143 /**
mbed_official 340:28d1f895c6fe 1144 * @brief DMA underrun DAC callback for channel2.
mbed_official 340:28d1f895c6fe 1145 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 1146 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 1147 * @retval None
mbed_official 340:28d1f895c6fe 1148 */
mbed_official 340:28d1f895c6fe 1149 __weak void HAL_DACEx_DMAUnderrunCallbackCh2(DAC_HandleTypeDef *hdac)
mbed_official 340:28d1f895c6fe 1150 {
mbed_official 340:28d1f895c6fe 1151 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 340:28d1f895c6fe 1152 the HAL_DAC_DMAUnderrunCallbackCh2 could be implemented in the user file
mbed_official 340:28d1f895c6fe 1153 */
mbed_official 340:28d1f895c6fe 1154 }
mbed_official 340:28d1f895c6fe 1155
mbed_official 340:28d1f895c6fe 1156 /**
mbed_official 340:28d1f895c6fe 1157 * @}
mbed_official 340:28d1f895c6fe 1158 */
mbed_official 340:28d1f895c6fe 1159
mbed_official 340:28d1f895c6fe 1160 /**
mbed_official 340:28d1f895c6fe 1161 * @}
mbed_official 340:28d1f895c6fe 1162 */
mbed_official 340:28d1f895c6fe 1163
mbed_official 441:d2c15dda23c1 1164 #endif /* STM32F071xB STM32F072xB STM32F078xx */
mbed_official 441:d2c15dda23c1 1165 /* STM32F091xC STM32F098xx */
mbed_official 441:d2c15dda23c1 1166
mbed_official 630:825f75ca301e 1167 /**
mbed_official 630:825f75ca301e 1168 * @}
mbed_official 630:825f75ca301e 1169 */
mbed_official 630:825f75ca301e 1170
mbed_official 441:d2c15dda23c1 1171 #endif /* HAL_DAC_MODULE_ENABLED */
mbed_official 441:d2c15dda23c1 1172
mbed_official 630:825f75ca301e 1173 /**
mbed_official 630:825f75ca301e 1174 * @}
mbed_official 630:825f75ca301e 1175 */
mbed_official 630:825f75ca301e 1176
mbed_official 340:28d1f895c6fe 1177 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/