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:
Thu Aug 20 10:45:13 2015 +0100
Revision:
613:bc40b8d2aec4
Parent:
532:fe11edbda85c
Synchronized with git revision 92ca8c7b60a283b6bb60eb65b183dac1599f0ade

Full URL: https://github.com/mbedmicro/mbed/commit/92ca8c7b60a283b6bb60eb65b183dac1599f0ade/

Nordic: update application start address in GCC linker script

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 235:685d5f11838f 1 /**
mbed_official 235:685d5f11838f 2 ******************************************************************************
mbed_official 235:685d5f11838f 3 * @file stm32f4xx_hal_dac.c
mbed_official 235:685d5f11838f 4 * @author MCD Application Team
mbed_official 613:bc40b8d2aec4 5 * @version V1.3.2
mbed_official 613:bc40b8d2aec4 6 * @date 26-June-2015
mbed_official 235:685d5f11838f 7 * @brief DAC HAL module driver.
mbed_official 235:685d5f11838f 8 * This file provides firmware functions to manage the following
mbed_official 235:685d5f11838f 9 * functionalities of the Digital to Analog Converter (DAC) peripheral:
mbed_official 235:685d5f11838f 10 * + Initialization and de-initialization functions
mbed_official 235:685d5f11838f 11 * + IO operation functions
mbed_official 235:685d5f11838f 12 * + Peripheral Control functions
mbed_official 235:685d5f11838f 13 * + Peripheral State and Errors functions
mbed_official 235:685d5f11838f 14 *
mbed_official 235:685d5f11838f 15 *
mbed_official 235:685d5f11838f 16 @verbatim
mbed_official 235:685d5f11838f 17 ==============================================================================
mbed_official 235:685d5f11838f 18 ##### DAC Peripheral features #####
mbed_official 235:685d5f11838f 19 ==============================================================================
mbed_official 235:685d5f11838f 20 [..]
mbed_official 235:685d5f11838f 21 *** DAC Channels ***
mbed_official 235:685d5f11838f 22 ====================
mbed_official 235:685d5f11838f 23 [..]
mbed_official 235:685d5f11838f 24 The device integrates two 12-bit Digital Analog Converters that can
mbed_official 235:685d5f11838f 25 be used independently or simultaneously (dual mode):
mbed_official 235:685d5f11838f 26 (#) DAC channel1 with DAC_OUT1 (PA4) as output
mbed_official 235:685d5f11838f 27 (#) DAC channel2 with DAC_OUT2 (PA5) as output
mbed_official 235:685d5f11838f 28
mbed_official 235:685d5f11838f 29 *** DAC Triggers ***
mbed_official 235:685d5f11838f 30 ====================
mbed_official 235:685d5f11838f 31 [..]
mbed_official 532:fe11edbda85c 32 Digital to Analog conversion can be non-triggered using DAC_TRIGGER_NONE
mbed_official 235:685d5f11838f 33 and DAC_OUT1/DAC_OUT2 is available once writing to DHRx register.
mbed_official 235:685d5f11838f 34 [..]
mbed_official 235:685d5f11838f 35 Digital to Analog conversion can be triggered by:
mbed_official 532:fe11edbda85c 36 (#) External event: EXTI Line 9 (any GPIOx_Pin9) using DAC_TRIGGER_EXT_IT9.
mbed_official 235:685d5f11838f 37 The used pin (GPIOx_Pin9) must be configured in input mode.
mbed_official 235:685d5f11838f 38
mbed_official 235:685d5f11838f 39 (#) Timers TRGO: TIM2, TIM4, TIM5, TIM6, TIM7 and TIM8
mbed_official 532:fe11edbda85c 40 (DAC_TRIGGER_T2_TRGO, DAC_TRIGGER_T4_TRGO...)
mbed_official 235:685d5f11838f 41
mbed_official 532:fe11edbda85c 42 (#) Software using DAC_TRIGGER_SOFTWARE
mbed_official 235:685d5f11838f 43
mbed_official 235:685d5f11838f 44 *** DAC Buffer mode feature ***
mbed_official 235:685d5f11838f 45 ===============================
mbed_official 235:685d5f11838f 46 [..]
mbed_official 235:685d5f11838f 47 Each DAC channel integrates an output buffer that can be used to
mbed_official 235:685d5f11838f 48 reduce the output impedance, and to drive external loads directly
mbed_official 235:685d5f11838f 49 without having to add an external operational amplifier.
mbed_official 235:685d5f11838f 50 To enable, the output buffer use
mbed_official 532:fe11edbda85c 51 sConfig.DAC_OutputBuffer = DAC_OUTPUTBUFFER_ENABLE;
mbed_official 235:685d5f11838f 52 [..]
mbed_official 235:685d5f11838f 53 (@) Refer to the device datasheet for more details about output
mbed_official 235:685d5f11838f 54 impedance value with and without output buffer.
mbed_official 235:685d5f11838f 55
mbed_official 235:685d5f11838f 56 *** DAC wave generation feature ***
mbed_official 235:685d5f11838f 57 ===================================
mbed_official 235:685d5f11838f 58 [..]
mbed_official 235:685d5f11838f 59 Both DAC channels can be used to generate
mbed_official 235:685d5f11838f 60 (#) Noise wave
mbed_official 235:685d5f11838f 61 (#) Triangle wave
mbed_official 235:685d5f11838f 62
mbed_official 235:685d5f11838f 63 *** DAC data format ***
mbed_official 235:685d5f11838f 64 =======================
mbed_official 235:685d5f11838f 65 [..]
mbed_official 235:685d5f11838f 66 The DAC data format can be:
mbed_official 235:685d5f11838f 67 (#) 8-bit right alignment using DAC_ALIGN_8B_R
mbed_official 235:685d5f11838f 68 (#) 12-bit left alignment using DAC_ALIGN_12B_L
mbed_official 235:685d5f11838f 69 (#) 12-bit right alignment using DAC_ALIGN_12B_R
mbed_official 235:685d5f11838f 70
mbed_official 235:685d5f11838f 71 *** DAC data value to voltage correspondence ***
mbed_official 235:685d5f11838f 72 ================================================
mbed_official 235:685d5f11838f 73 [..]
mbed_official 235:685d5f11838f 74 The analog output voltage on each DAC channel pin is determined
mbed_official 235:685d5f11838f 75 by the following equation:
mbed_official 235:685d5f11838f 76 DAC_OUTx = VREF+ * DOR / 4095
mbed_official 235:685d5f11838f 77 with DOR is the Data Output Register
mbed_official 235:685d5f11838f 78 VEF+ is the input voltage reference (refer to the device datasheet)
mbed_official 235:685d5f11838f 79 e.g. To set DAC_OUT1 to 0.7V, use
mbed_official 235:685d5f11838f 80 Assuming that VREF+ = 3.3V, DAC_OUT1 = (3.3 * 868) / 4095 = 0.7V
mbed_official 235:685d5f11838f 81
mbed_official 235:685d5f11838f 82 *** DMA requests ***
mbed_official 235:685d5f11838f 83 =====================
mbed_official 235:685d5f11838f 84 [..]
mbed_official 235:685d5f11838f 85 A DMA1 request can be generated when an external trigger (but not
mbed_official 235:685d5f11838f 86 a software trigger) occurs if DMA1 requests are enabled using
mbed_official 235:685d5f11838f 87 HAL_DAC_Start_DMA()
mbed_official 235:685d5f11838f 88 [..]
mbed_official 235:685d5f11838f 89 DMA1 requests are mapped as following:
mbed_official 235:685d5f11838f 90 (#) DAC channel1 : mapped on DMA1 Stream5 channel7 which must be
mbed_official 235:685d5f11838f 91 already configured
mbed_official 235:685d5f11838f 92 (#) DAC channel2 : mapped on DMA1 Stream6 channel7 which must be
mbed_official 235:685d5f11838f 93 already configured
mbed_official 235:685d5f11838f 94
mbed_official 235:685d5f11838f 95 -@- For Dual mode and specific signal (Triangle and noise) generation please
mbed_official 235:685d5f11838f 96 refer to Extension Features Driver description
mbed_official 235:685d5f11838f 97
mbed_official 235:685d5f11838f 98
mbed_official 235:685d5f11838f 99 ##### How to use this driver #####
mbed_official 235:685d5f11838f 100 ==============================================================================
mbed_official 235:685d5f11838f 101 [..]
mbed_official 235:685d5f11838f 102 (+) DAC APB clock must be enabled to get write access to DAC
mbed_official 235:685d5f11838f 103 registers using HAL_DAC_Init()
mbed_official 235:685d5f11838f 104 (+) Configure DAC_OUTx (DAC_OUT1: PA4, DAC_OUT2: PA5) in analog mode.
mbed_official 235:685d5f11838f 105 (+) Configure the DAC channel using HAL_DAC_ConfigChannel() function.
mbed_official 235:685d5f11838f 106 (+) Enable the DAC channel using HAL_DAC_Start() or HAL_DAC_Start_DMA functions
mbed_official 235:685d5f11838f 107
mbed_official 235:685d5f11838f 108 *** Polling mode IO operation ***
mbed_official 235:685d5f11838f 109 =================================
mbed_official 235:685d5f11838f 110 [..]
mbed_official 235:685d5f11838f 111 (+) Start the DAC peripheral using HAL_DAC_Start()
mbed_official 532:fe11edbda85c 112 (+) To read the DAC last data output value, use the HAL_DAC_GetValue() function.
mbed_official 235:685d5f11838f 113 (+) Stop the DAC peripheral using HAL_DAC_Stop()
mbed_official 235:685d5f11838f 114
mbed_official 235:685d5f11838f 115 *** DMA mode IO operation ***
mbed_official 235:685d5f11838f 116 ==============================
mbed_official 235:685d5f11838f 117 [..]
mbed_official 235:685d5f11838f 118 (+) Start the DAC peripheral using HAL_DAC_Start_DMA(), at this stage the user specify the length
mbed_official 235:685d5f11838f 119 of data to be transferred at each end of conversion
mbed_official 235:685d5f11838f 120 (+) At The end of data transfer HAL_DAC_ConvCpltCallbackCh1()or HAL_DAC_ConvCpltCallbackCh2()
mbed_official 235:685d5f11838f 121 function is executed and user can add his own code by customization of function pointer
mbed_official 235:685d5f11838f 122 HAL_DAC_ConvCpltCallbackCh1 or HAL_DAC_ConvCpltCallbackCh2
mbed_official 235:685d5f11838f 123 (+) In case of transfer Error, HAL_DAC_ErrorCallbackCh1() function is executed and user can
mbed_official 235:685d5f11838f 124 add his own code by customization of function pointer HAL_DAC_ErrorCallbackCh1
mbed_official 235:685d5f11838f 125 (+) Stop the DAC peripheral using HAL_DAC_Stop_DMA()
mbed_official 235:685d5f11838f 126
mbed_official 235:685d5f11838f 127 *** DAC HAL driver macros list ***
mbed_official 235:685d5f11838f 128 =============================================
mbed_official 235:685d5f11838f 129 [..]
mbed_official 235:685d5f11838f 130 Below the list of most used macros in DAC HAL driver.
mbed_official 235:685d5f11838f 131
mbed_official 235:685d5f11838f 132 (+) __HAL_DAC_ENABLE : Enable the DAC peripheral
mbed_official 235:685d5f11838f 133 (+) __HAL_DAC_DISABLE : Disable the DAC peripheral
mbed_official 235:685d5f11838f 134 (+) __HAL_DAC_CLEAR_FLAG: Clear the DAC's pending flags
mbed_official 235:685d5f11838f 135 (+) __HAL_DAC_GET_FLAG: Get the selected DAC's flag status
mbed_official 235:685d5f11838f 136
mbed_official 235:685d5f11838f 137 [..]
mbed_official 235:685d5f11838f 138 (@) You can refer to the DAC HAL driver header file for more useful macros
mbed_official 235:685d5f11838f 139
mbed_official 235:685d5f11838f 140 @endverbatim
mbed_official 235:685d5f11838f 141 ******************************************************************************
mbed_official 235:685d5f11838f 142 * @attention
mbed_official 235:685d5f11838f 143 *
mbed_official 532:fe11edbda85c 144 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
mbed_official 235:685d5f11838f 145 *
mbed_official 235:685d5f11838f 146 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 235:685d5f11838f 147 * are permitted provided that the following conditions are met:
mbed_official 235:685d5f11838f 148 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 235:685d5f11838f 149 * this list of conditions and the following disclaimer.
mbed_official 235:685d5f11838f 150 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 235:685d5f11838f 151 * this list of conditions and the following disclaimer in the documentation
mbed_official 235:685d5f11838f 152 * and/or other materials provided with the distribution.
mbed_official 235:685d5f11838f 153 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 235:685d5f11838f 154 * may be used to endorse or promote products derived from this software
mbed_official 235:685d5f11838f 155 * without specific prior written permission.
mbed_official 235:685d5f11838f 156 *
mbed_official 235:685d5f11838f 157 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 235:685d5f11838f 158 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 235:685d5f11838f 159 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 235:685d5f11838f 160 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 235:685d5f11838f 161 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 235:685d5f11838f 162 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 235:685d5f11838f 163 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 235:685d5f11838f 164 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 235:685d5f11838f 165 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 235:685d5f11838f 166 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 235:685d5f11838f 167 *
mbed_official 235:685d5f11838f 168 ******************************************************************************
mbed_official 235:685d5f11838f 169 */
mbed_official 235:685d5f11838f 170
mbed_official 235:685d5f11838f 171
mbed_official 235:685d5f11838f 172 /* Includes ------------------------------------------------------------------*/
mbed_official 235:685d5f11838f 173 #include "stm32f4xx_hal.h"
mbed_official 235:685d5f11838f 174
mbed_official 235:685d5f11838f 175 /** @addtogroup STM32F4xx_HAL_Driver
mbed_official 235:685d5f11838f 176 * @{
mbed_official 235:685d5f11838f 177 */
mbed_official 235:685d5f11838f 178
mbed_official 532:fe11edbda85c 179 /** @defgroup DAC DAC
mbed_official 235:685d5f11838f 180 * @brief DAC driver modules
mbed_official 235:685d5f11838f 181 * @{
mbed_official 235:685d5f11838f 182 */
mbed_official 235:685d5f11838f 183
mbed_official 235:685d5f11838f 184 #ifdef HAL_DAC_MODULE_ENABLED
mbed_official 235:685d5f11838f 185
mbed_official 532:fe11edbda85c 186 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) ||\
mbed_official 532:fe11edbda85c 187 defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\
mbed_official 532:fe11edbda85c 188 defined(STM32F446xx)
mbed_official 235:685d5f11838f 189 /* Private typedef -----------------------------------------------------------*/
mbed_official 235:685d5f11838f 190 /* Private define ------------------------------------------------------------*/
mbed_official 235:685d5f11838f 191 /* Private macro -------------------------------------------------------------*/
mbed_official 235:685d5f11838f 192 /* Private variables ---------------------------------------------------------*/
mbed_official 532:fe11edbda85c 193 /** @addtogroup DAC_Private_Functions
mbed_official 532:fe11edbda85c 194 * @{
mbed_official 532:fe11edbda85c 195 */
mbed_official 235:685d5f11838f 196 /* Private function prototypes -----------------------------------------------*/
mbed_official 235:685d5f11838f 197 static void DAC_DMAConvCpltCh1(DMA_HandleTypeDef *hdma);
mbed_official 235:685d5f11838f 198 static void DAC_DMAErrorCh1(DMA_HandleTypeDef *hdma);
mbed_official 235:685d5f11838f 199 static void DAC_DMAHalfConvCpltCh1(DMA_HandleTypeDef *hdma);
mbed_official 532:fe11edbda85c 200 /**
mbed_official 532:fe11edbda85c 201 * @}
mbed_official 532:fe11edbda85c 202 */
mbed_official 235:685d5f11838f 203
mbed_official 532:fe11edbda85c 204 /* Exported functions --------------------------------------------------------*/
mbed_official 532:fe11edbda85c 205 /** @defgroup DAC_Exported_Functions DAC Exported Functions
mbed_official 235:685d5f11838f 206 * @{
mbed_official 235:685d5f11838f 207 */
mbed_official 235:685d5f11838f 208
mbed_official 532:fe11edbda85c 209 /** @defgroup DAC_Exported_Functions_Group1 Initialization and de-initialization functions
mbed_official 235:685d5f11838f 210 * @brief Initialization and Configuration functions
mbed_official 235:685d5f11838f 211 *
mbed_official 235:685d5f11838f 212 @verbatim
mbed_official 235:685d5f11838f 213 ==============================================================================
mbed_official 235:685d5f11838f 214 ##### Initialization and de-initialization functions #####
mbed_official 235:685d5f11838f 215 ==============================================================================
mbed_official 235:685d5f11838f 216 [..] This section provides functions allowing to:
mbed_official 235:685d5f11838f 217 (+) Initialize and configure the DAC.
mbed_official 235:685d5f11838f 218 (+) De-initialize the DAC.
mbed_official 235:685d5f11838f 219
mbed_official 235:685d5f11838f 220 @endverbatim
mbed_official 235:685d5f11838f 221 * @{
mbed_official 235:685d5f11838f 222 */
mbed_official 235:685d5f11838f 223
mbed_official 235:685d5f11838f 224 /**
mbed_official 235:685d5f11838f 225 * @brief Initializes the DAC peripheral according to the specified parameters
mbed_official 235:685d5f11838f 226 * in the DAC_InitStruct.
mbed_official 235:685d5f11838f 227 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 235:685d5f11838f 228 * the configuration information for the specified DAC.
mbed_official 235:685d5f11838f 229 * @retval HAL status
mbed_official 235:685d5f11838f 230 */
mbed_official 235:685d5f11838f 231 HAL_StatusTypeDef HAL_DAC_Init(DAC_HandleTypeDef* hdac)
mbed_official 235:685d5f11838f 232 {
mbed_official 235:685d5f11838f 233 /* Check DAC handle */
mbed_official 613:bc40b8d2aec4 234 if(hdac == NULL)
mbed_official 235:685d5f11838f 235 {
mbed_official 235:685d5f11838f 236 return HAL_ERROR;
mbed_official 235:685d5f11838f 237 }
mbed_official 235:685d5f11838f 238 /* Check the parameters */
mbed_official 235:685d5f11838f 239 assert_param(IS_DAC_ALL_INSTANCE(hdac->Instance));
mbed_official 235:685d5f11838f 240
mbed_official 235:685d5f11838f 241 if(hdac->State == HAL_DAC_STATE_RESET)
mbed_official 235:685d5f11838f 242 {
mbed_official 532:fe11edbda85c 243 /* Allocate lock resource and initialize it */
mbed_official 532:fe11edbda85c 244 hdac->Lock = HAL_UNLOCKED;
mbed_official 235:685d5f11838f 245 /* Init the low level hardware */
mbed_official 235:685d5f11838f 246 HAL_DAC_MspInit(hdac);
mbed_official 235:685d5f11838f 247 }
mbed_official 235:685d5f11838f 248
mbed_official 235:685d5f11838f 249 /* Initialize the DAC state*/
mbed_official 235:685d5f11838f 250 hdac->State = HAL_DAC_STATE_BUSY;
mbed_official 235:685d5f11838f 251
mbed_official 235:685d5f11838f 252 /* Set DAC error code to none */
mbed_official 235:685d5f11838f 253 hdac->ErrorCode = HAL_DAC_ERROR_NONE;
mbed_official 235:685d5f11838f 254
mbed_official 235:685d5f11838f 255 /* Initialize the DAC state*/
mbed_official 235:685d5f11838f 256 hdac->State = HAL_DAC_STATE_READY;
mbed_official 235:685d5f11838f 257
mbed_official 235:685d5f11838f 258 /* Return function status */
mbed_official 235:685d5f11838f 259 return HAL_OK;
mbed_official 235:685d5f11838f 260 }
mbed_official 235:685d5f11838f 261
mbed_official 235:685d5f11838f 262 /**
mbed_official 235:685d5f11838f 263 * @brief Deinitializes the DAC peripheral registers to their default reset values.
mbed_official 235:685d5f11838f 264 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 235:685d5f11838f 265 * the configuration information for the specified DAC.
mbed_official 235:685d5f11838f 266 * @retval HAL status
mbed_official 235:685d5f11838f 267 */
mbed_official 235:685d5f11838f 268 HAL_StatusTypeDef HAL_DAC_DeInit(DAC_HandleTypeDef* hdac)
mbed_official 235:685d5f11838f 269 {
mbed_official 235:685d5f11838f 270 /* Check DAC handle */
mbed_official 613:bc40b8d2aec4 271 if(hdac == NULL)
mbed_official 235:685d5f11838f 272 {
mbed_official 235:685d5f11838f 273 return HAL_ERROR;
mbed_official 235:685d5f11838f 274 }
mbed_official 235:685d5f11838f 275
mbed_official 235:685d5f11838f 276 /* Check the parameters */
mbed_official 235:685d5f11838f 277 assert_param(IS_DAC_ALL_INSTANCE(hdac->Instance));
mbed_official 235:685d5f11838f 278
mbed_official 235:685d5f11838f 279 /* Change DAC state */
mbed_official 235:685d5f11838f 280 hdac->State = HAL_DAC_STATE_BUSY;
mbed_official 235:685d5f11838f 281
mbed_official 235:685d5f11838f 282 /* DeInit the low level hardware */
mbed_official 235:685d5f11838f 283 HAL_DAC_MspDeInit(hdac);
mbed_official 235:685d5f11838f 284
mbed_official 235:685d5f11838f 285 /* Set DAC error code to none */
mbed_official 235:685d5f11838f 286 hdac->ErrorCode = HAL_DAC_ERROR_NONE;
mbed_official 235:685d5f11838f 287
mbed_official 235:685d5f11838f 288 /* Change DAC state */
mbed_official 235:685d5f11838f 289 hdac->State = HAL_DAC_STATE_RESET;
mbed_official 235:685d5f11838f 290
mbed_official 235:685d5f11838f 291 /* Release Lock */
mbed_official 235:685d5f11838f 292 __HAL_UNLOCK(hdac);
mbed_official 235:685d5f11838f 293
mbed_official 235:685d5f11838f 294 /* Return function status */
mbed_official 235:685d5f11838f 295 return HAL_OK;
mbed_official 235:685d5f11838f 296 }
mbed_official 235:685d5f11838f 297
mbed_official 235:685d5f11838f 298 /**
mbed_official 235:685d5f11838f 299 * @brief Initializes the DAC MSP.
mbed_official 235:685d5f11838f 300 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 235:685d5f11838f 301 * the configuration information for the specified DAC.
mbed_official 235:685d5f11838f 302 * @retval None
mbed_official 235:685d5f11838f 303 */
mbed_official 235:685d5f11838f 304 __weak void HAL_DAC_MspInit(DAC_HandleTypeDef* hdac)
mbed_official 235:685d5f11838f 305 {
mbed_official 235:685d5f11838f 306 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 235:685d5f11838f 307 the HAL_DAC_MspInit could be implemented in the user file
mbed_official 235:685d5f11838f 308 */
mbed_official 235:685d5f11838f 309 }
mbed_official 235:685d5f11838f 310
mbed_official 235:685d5f11838f 311 /**
mbed_official 235:685d5f11838f 312 * @brief DeInitializes the DAC MSP.
mbed_official 235:685d5f11838f 313 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 235:685d5f11838f 314 * the configuration information for the specified DAC.
mbed_official 235:685d5f11838f 315 * @retval None
mbed_official 235:685d5f11838f 316 */
mbed_official 235:685d5f11838f 317 __weak void HAL_DAC_MspDeInit(DAC_HandleTypeDef* hdac)
mbed_official 235:685d5f11838f 318 {
mbed_official 235:685d5f11838f 319 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 235:685d5f11838f 320 the HAL_DAC_MspDeInit could be implemented in the user file
mbed_official 235:685d5f11838f 321 */
mbed_official 235:685d5f11838f 322 }
mbed_official 235:685d5f11838f 323
mbed_official 235:685d5f11838f 324 /**
mbed_official 235:685d5f11838f 325 * @}
mbed_official 235:685d5f11838f 326 */
mbed_official 235:685d5f11838f 327
mbed_official 532:fe11edbda85c 328 /** @defgroup DAC_Exported_Functions_Group2 IO operation functions
mbed_official 235:685d5f11838f 329 * @brief IO operation functions
mbed_official 235:685d5f11838f 330 *
mbed_official 235:685d5f11838f 331 @verbatim
mbed_official 235:685d5f11838f 332 ==============================================================================
mbed_official 235:685d5f11838f 333 ##### IO operation functions #####
mbed_official 235:685d5f11838f 334 ==============================================================================
mbed_official 235:685d5f11838f 335 [..] This section provides functions allowing to:
mbed_official 235:685d5f11838f 336 (+) Start conversion.
mbed_official 235:685d5f11838f 337 (+) Stop conversion.
mbed_official 235:685d5f11838f 338 (+) Start conversion and enable DMA transfer.
mbed_official 235:685d5f11838f 339 (+) Stop conversion and disable DMA transfer.
mbed_official 235:685d5f11838f 340 (+) Get result of conversion.
mbed_official 235:685d5f11838f 341
mbed_official 235:685d5f11838f 342 @endverbatim
mbed_official 235:685d5f11838f 343 * @{
mbed_official 235:685d5f11838f 344 */
mbed_official 235:685d5f11838f 345
mbed_official 235:685d5f11838f 346 /**
mbed_official 235:685d5f11838f 347 * @brief Enables DAC and starts conversion of channel.
mbed_official 235:685d5f11838f 348 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 235:685d5f11838f 349 * the configuration information for the specified DAC.
mbed_official 235:685d5f11838f 350 * @param Channel: The selected DAC channel.
mbed_official 235:685d5f11838f 351 * This parameter can be one of the following values:
mbed_official 235:685d5f11838f 352 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 235:685d5f11838f 353 * @arg DAC_CHANNEL_2: DAC Channel2 selected
mbed_official 235:685d5f11838f 354 * @retval HAL status
mbed_official 235:685d5f11838f 355 */
mbed_official 235:685d5f11838f 356 HAL_StatusTypeDef HAL_DAC_Start(DAC_HandleTypeDef* hdac, uint32_t Channel)
mbed_official 235:685d5f11838f 357 {
mbed_official 613:bc40b8d2aec4 358 uint32_t tmp1 = 0, tmp2 = 0;
mbed_official 613:bc40b8d2aec4 359
mbed_official 235:685d5f11838f 360 /* Check the parameters */
mbed_official 235:685d5f11838f 361 assert_param(IS_DAC_CHANNEL(Channel));
mbed_official 235:685d5f11838f 362
mbed_official 235:685d5f11838f 363 /* Process locked */
mbed_official 235:685d5f11838f 364 __HAL_LOCK(hdac);
mbed_official 235:685d5f11838f 365
mbed_official 235:685d5f11838f 366 /* Change DAC state */
mbed_official 235:685d5f11838f 367 hdac->State = HAL_DAC_STATE_BUSY;
mbed_official 235:685d5f11838f 368
mbed_official 532:fe11edbda85c 369 /* Enable the Peripheral */
mbed_official 235:685d5f11838f 370 __HAL_DAC_ENABLE(hdac, Channel);
mbed_official 235:685d5f11838f 371
mbed_official 613:bc40b8d2aec4 372 if(Channel == DAC_CHANNEL_1)
mbed_official 613:bc40b8d2aec4 373 {
mbed_official 613:bc40b8d2aec4 374 tmp1 = hdac->Instance->CR & DAC_CR_TEN1;
mbed_official 613:bc40b8d2aec4 375 tmp2 = hdac->Instance->CR & DAC_CR_TSEL1;
mbed_official 613:bc40b8d2aec4 376 /* Check if software trigger enabled */
mbed_official 613:bc40b8d2aec4 377 if((tmp1 == DAC_CR_TEN1) && (tmp2 == DAC_CR_TSEL1))
mbed_official 613:bc40b8d2aec4 378 {
mbed_official 613:bc40b8d2aec4 379 /* Enable the selected DAC software conversion */
mbed_official 613:bc40b8d2aec4 380 hdac->Instance->SWTRIGR |= (uint32_t)DAC_SWTRIGR_SWTRIG1;
mbed_official 613:bc40b8d2aec4 381 }
mbed_official 613:bc40b8d2aec4 382 }
mbed_official 613:bc40b8d2aec4 383 else
mbed_official 613:bc40b8d2aec4 384 {
mbed_official 613:bc40b8d2aec4 385 tmp1 = hdac->Instance->CR & DAC_CR_TEN2;
mbed_official 613:bc40b8d2aec4 386 tmp2 = hdac->Instance->CR & DAC_CR_TSEL2;
mbed_official 613:bc40b8d2aec4 387 /* Check if software trigger enabled */
mbed_official 613:bc40b8d2aec4 388 if((tmp1 == DAC_CR_TEN2) && (tmp2 == DAC_CR_TSEL2))
mbed_official 613:bc40b8d2aec4 389 {
mbed_official 613:bc40b8d2aec4 390 /* Enable the selected DAC software conversion*/
mbed_official 613:bc40b8d2aec4 391 hdac->Instance->SWTRIGR |= (uint32_t)DAC_SWTRIGR_SWTRIG2;
mbed_official 613:bc40b8d2aec4 392 }
mbed_official 613:bc40b8d2aec4 393 }
mbed_official 613:bc40b8d2aec4 394
mbed_official 235:685d5f11838f 395 /* Change DAC state */
mbed_official 235:685d5f11838f 396 hdac->State = HAL_DAC_STATE_READY;
mbed_official 235:685d5f11838f 397
mbed_official 235:685d5f11838f 398 /* Process unlocked */
mbed_official 235:685d5f11838f 399 __HAL_UNLOCK(hdac);
mbed_official 235:685d5f11838f 400
mbed_official 235:685d5f11838f 401 /* Return function status */
mbed_official 235:685d5f11838f 402 return HAL_OK;
mbed_official 235:685d5f11838f 403 }
mbed_official 235:685d5f11838f 404
mbed_official 235:685d5f11838f 405 /**
mbed_official 235:685d5f11838f 406 * @brief Disables DAC and stop conversion of channel.
mbed_official 235:685d5f11838f 407 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 235:685d5f11838f 408 * the configuration information for the specified DAC.
mbed_official 235:685d5f11838f 409 * @param Channel: The selected DAC channel.
mbed_official 235:685d5f11838f 410 * This parameter can be one of the following values:
mbed_official 235:685d5f11838f 411 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 235:685d5f11838f 412 * @arg DAC_CHANNEL_2: DAC Channel2 selected
mbed_official 235:685d5f11838f 413 * @retval HAL status
mbed_official 235:685d5f11838f 414 */
mbed_official 235:685d5f11838f 415 HAL_StatusTypeDef HAL_DAC_Stop(DAC_HandleTypeDef* hdac, uint32_t Channel)
mbed_official 235:685d5f11838f 416 {
mbed_official 235:685d5f11838f 417 /* Check the parameters */
mbed_official 235:685d5f11838f 418 assert_param(IS_DAC_CHANNEL(Channel));
mbed_official 235:685d5f11838f 419
mbed_official 235:685d5f11838f 420 /* Disable the Peripheral */
mbed_official 235:685d5f11838f 421 __HAL_DAC_DISABLE(hdac, Channel);
mbed_official 532:fe11edbda85c 422
mbed_official 235:685d5f11838f 423 /* Change DAC state */
mbed_official 235:685d5f11838f 424 hdac->State = HAL_DAC_STATE_READY;
mbed_official 235:685d5f11838f 425
mbed_official 235:685d5f11838f 426 /* Return function status */
mbed_official 235:685d5f11838f 427 return HAL_OK;
mbed_official 235:685d5f11838f 428 }
mbed_official 235:685d5f11838f 429
mbed_official 235:685d5f11838f 430 /**
mbed_official 235:685d5f11838f 431 * @brief Enables DAC and starts conversion of channel.
mbed_official 235:685d5f11838f 432 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 235:685d5f11838f 433 * the configuration information for the specified DAC.
mbed_official 235:685d5f11838f 434 * @param Channel: The selected DAC channel.
mbed_official 235:685d5f11838f 435 * This parameter can be one of the following values:
mbed_official 235:685d5f11838f 436 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 235:685d5f11838f 437 * @arg DAC_CHANNEL_2: DAC Channel2 selected
mbed_official 235:685d5f11838f 438 * @param pData: The destination peripheral Buffer address.
mbed_official 235:685d5f11838f 439 * @param Length: The length of data to be transferred from memory to DAC peripheral
mbed_official 235:685d5f11838f 440 * @param Alignment: Specifies the data alignment for DAC channel.
mbed_official 235:685d5f11838f 441 * This parameter can be one of the following values:
mbed_official 235:685d5f11838f 442 * @arg DAC_ALIGN_8B_R: 8bit right data alignment selected
mbed_official 235:685d5f11838f 443 * @arg DAC_ALIGN_12B_L: 12bit left data alignment selected
mbed_official 235:685d5f11838f 444 * @arg DAC_ALIGN_12B_R: 12bit right data alignment selected
mbed_official 235:685d5f11838f 445 * @retval HAL status
mbed_official 235:685d5f11838f 446 */
mbed_official 235:685d5f11838f 447 HAL_StatusTypeDef HAL_DAC_Start_DMA(DAC_HandleTypeDef* hdac, uint32_t Channel, uint32_t* pData, uint32_t Length, uint32_t Alignment)
mbed_official 235:685d5f11838f 448 {
mbed_official 235:685d5f11838f 449 uint32_t tmpreg = 0;
mbed_official 235:685d5f11838f 450
mbed_official 235:685d5f11838f 451 /* Check the parameters */
mbed_official 235:685d5f11838f 452 assert_param(IS_DAC_CHANNEL(Channel));
mbed_official 235:685d5f11838f 453 assert_param(IS_DAC_ALIGN(Alignment));
mbed_official 235:685d5f11838f 454
mbed_official 235:685d5f11838f 455 /* Process locked */
mbed_official 235:685d5f11838f 456 __HAL_LOCK(hdac);
mbed_official 235:685d5f11838f 457
mbed_official 235:685d5f11838f 458 /* Change DAC state */
mbed_official 235:685d5f11838f 459 hdac->State = HAL_DAC_STATE_BUSY;
mbed_official 235:685d5f11838f 460
mbed_official 235:685d5f11838f 461 if(Channel == DAC_CHANNEL_1)
mbed_official 235:685d5f11838f 462 {
mbed_official 235:685d5f11838f 463 /* Set the DMA transfer complete callback for channel1 */
mbed_official 235:685d5f11838f 464 hdac->DMA_Handle1->XferCpltCallback = DAC_DMAConvCpltCh1;
mbed_official 235:685d5f11838f 465
mbed_official 235:685d5f11838f 466 /* Set the DMA half transfer complete callback for channel1 */
mbed_official 235:685d5f11838f 467 hdac->DMA_Handle1->XferHalfCpltCallback = DAC_DMAHalfConvCpltCh1;
mbed_official 235:685d5f11838f 468
mbed_official 235:685d5f11838f 469 /* Set the DMA error callback for channel1 */
mbed_official 235:685d5f11838f 470 hdac->DMA_Handle1->XferErrorCallback = DAC_DMAErrorCh1;
mbed_official 235:685d5f11838f 471
mbed_official 235:685d5f11838f 472 /* Enable the selected DAC channel1 DMA request */
mbed_official 235:685d5f11838f 473 hdac->Instance->CR |= DAC_CR_DMAEN1;
mbed_official 235:685d5f11838f 474
mbed_official 235:685d5f11838f 475 /* Case of use of channel 1 */
mbed_official 235:685d5f11838f 476 switch(Alignment)
mbed_official 235:685d5f11838f 477 {
mbed_official 235:685d5f11838f 478 case DAC_ALIGN_12B_R:
mbed_official 235:685d5f11838f 479 /* Get DHR12R1 address */
mbed_official 235:685d5f11838f 480 tmpreg = (uint32_t)&hdac->Instance->DHR12R1;
mbed_official 235:685d5f11838f 481 break;
mbed_official 235:685d5f11838f 482 case DAC_ALIGN_12B_L:
mbed_official 235:685d5f11838f 483 /* Get DHR12L1 address */
mbed_official 235:685d5f11838f 484 tmpreg = (uint32_t)&hdac->Instance->DHR12L1;
mbed_official 235:685d5f11838f 485 break;
mbed_official 235:685d5f11838f 486 case DAC_ALIGN_8B_R:
mbed_official 235:685d5f11838f 487 /* Get DHR8R1 address */
mbed_official 235:685d5f11838f 488 tmpreg = (uint32_t)&hdac->Instance->DHR8R1;
mbed_official 235:685d5f11838f 489 break;
mbed_official 235:685d5f11838f 490 default:
mbed_official 235:685d5f11838f 491 break;
mbed_official 235:685d5f11838f 492 }
mbed_official 235:685d5f11838f 493 }
mbed_official 235:685d5f11838f 494 else
mbed_official 235:685d5f11838f 495 {
mbed_official 235:685d5f11838f 496 /* Set the DMA transfer complete callback for channel2 */
mbed_official 235:685d5f11838f 497 hdac->DMA_Handle2->XferCpltCallback = DAC_DMAConvCpltCh2;
mbed_official 235:685d5f11838f 498
mbed_official 235:685d5f11838f 499 /* Set the DMA half transfer complete callback for channel2 */
mbed_official 235:685d5f11838f 500 hdac->DMA_Handle2->XferHalfCpltCallback = DAC_DMAHalfConvCpltCh2;
mbed_official 235:685d5f11838f 501
mbed_official 235:685d5f11838f 502 /* Set the DMA error callback for channel2 */
mbed_official 235:685d5f11838f 503 hdac->DMA_Handle2->XferErrorCallback = DAC_DMAErrorCh2;
mbed_official 235:685d5f11838f 504
mbed_official 235:685d5f11838f 505 /* Enable the selected DAC channel2 DMA request */
mbed_official 235:685d5f11838f 506 hdac->Instance->CR |= DAC_CR_DMAEN2;
mbed_official 235:685d5f11838f 507
mbed_official 235:685d5f11838f 508 /* Case of use of channel 2 */
mbed_official 235:685d5f11838f 509 switch(Alignment)
mbed_official 235:685d5f11838f 510 {
mbed_official 235:685d5f11838f 511 case DAC_ALIGN_12B_R:
mbed_official 235:685d5f11838f 512 /* Get DHR12R2 address */
mbed_official 235:685d5f11838f 513 tmpreg = (uint32_t)&hdac->Instance->DHR12R2;
mbed_official 235:685d5f11838f 514 break;
mbed_official 235:685d5f11838f 515 case DAC_ALIGN_12B_L:
mbed_official 235:685d5f11838f 516 /* Get DHR12L2 address */
mbed_official 235:685d5f11838f 517 tmpreg = (uint32_t)&hdac->Instance->DHR12L2;
mbed_official 235:685d5f11838f 518 break;
mbed_official 235:685d5f11838f 519 case DAC_ALIGN_8B_R:
mbed_official 235:685d5f11838f 520 /* Get DHR8R2 address */
mbed_official 235:685d5f11838f 521 tmpreg = (uint32_t)&hdac->Instance->DHR8R2;
mbed_official 235:685d5f11838f 522 break;
mbed_official 235:685d5f11838f 523 default:
mbed_official 235:685d5f11838f 524 break;
mbed_official 235:685d5f11838f 525 }
mbed_official 235:685d5f11838f 526 }
mbed_official 235:685d5f11838f 527
mbed_official 235:685d5f11838f 528 /* Enable the DMA Stream */
mbed_official 235:685d5f11838f 529 if(Channel == DAC_CHANNEL_1)
mbed_official 235:685d5f11838f 530 {
mbed_official 235:685d5f11838f 531 /* Enable the DAC DMA underrun interrupt */
mbed_official 235:685d5f11838f 532 __HAL_DAC_ENABLE_IT(hdac, DAC_IT_DMAUDR1);
mbed_official 235:685d5f11838f 533
mbed_official 235:685d5f11838f 534 /* Enable the DMA Stream */
mbed_official 235:685d5f11838f 535 HAL_DMA_Start_IT(hdac->DMA_Handle1, (uint32_t)pData, tmpreg, Length);
mbed_official 235:685d5f11838f 536 }
mbed_official 235:685d5f11838f 537 else
mbed_official 235:685d5f11838f 538 {
mbed_official 235:685d5f11838f 539 /* Enable the DAC DMA underrun interrupt */
mbed_official 235:685d5f11838f 540 __HAL_DAC_ENABLE_IT(hdac, DAC_IT_DMAUDR2);
mbed_official 235:685d5f11838f 541
mbed_official 235:685d5f11838f 542 /* Enable the DMA Stream */
mbed_official 235:685d5f11838f 543 HAL_DMA_Start_IT(hdac->DMA_Handle2, (uint32_t)pData, tmpreg, Length);
mbed_official 235:685d5f11838f 544 }
mbed_official 235:685d5f11838f 545
mbed_official 532:fe11edbda85c 546 /* Enable the Peripheral */
mbed_official 235:685d5f11838f 547 __HAL_DAC_ENABLE(hdac, Channel);
mbed_official 235:685d5f11838f 548
mbed_official 235:685d5f11838f 549 /* Process Unlocked */
mbed_official 235:685d5f11838f 550 __HAL_UNLOCK(hdac);
mbed_official 235:685d5f11838f 551
mbed_official 235:685d5f11838f 552 /* Return function status */
mbed_official 235:685d5f11838f 553 return HAL_OK;
mbed_official 235:685d5f11838f 554 }
mbed_official 235:685d5f11838f 555
mbed_official 235:685d5f11838f 556 /**
mbed_official 235:685d5f11838f 557 * @brief Disables DAC and stop conversion of channel.
mbed_official 235:685d5f11838f 558 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 235:685d5f11838f 559 * the configuration information for the specified DAC.
mbed_official 235:685d5f11838f 560 * @param Channel: The selected DAC channel.
mbed_official 235:685d5f11838f 561 * This parameter can be one of the following values:
mbed_official 235:685d5f11838f 562 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 235:685d5f11838f 563 * @arg DAC_CHANNEL_2: DAC Channel2 selected
mbed_official 235:685d5f11838f 564 * @retval HAL status
mbed_official 235:685d5f11838f 565 */
mbed_official 235:685d5f11838f 566 HAL_StatusTypeDef HAL_DAC_Stop_DMA(DAC_HandleTypeDef* hdac, uint32_t Channel)
mbed_official 235:685d5f11838f 567 {
mbed_official 235:685d5f11838f 568 HAL_StatusTypeDef status = HAL_OK;
mbed_official 235:685d5f11838f 569
mbed_official 235:685d5f11838f 570 /* Check the parameters */
mbed_official 235:685d5f11838f 571 assert_param(IS_DAC_CHANNEL(Channel));
mbed_official 235:685d5f11838f 572
mbed_official 235:685d5f11838f 573 /* Disable the selected DAC channel DMA request */
mbed_official 235:685d5f11838f 574 hdac->Instance->CR &= ~(DAC_CR_DMAEN1 << Channel);
mbed_official 235:685d5f11838f 575
mbed_official 532:fe11edbda85c 576 /* Disable the Peripheral */
mbed_official 235:685d5f11838f 577 __HAL_DAC_DISABLE(hdac, Channel);
mbed_official 235:685d5f11838f 578
mbed_official 235:685d5f11838f 579 /* Disable the DMA Channel */
mbed_official 235:685d5f11838f 580 /* Channel1 is used */
mbed_official 235:685d5f11838f 581 if(Channel == DAC_CHANNEL_1)
mbed_official 235:685d5f11838f 582 {
mbed_official 235:685d5f11838f 583 status = HAL_DMA_Abort(hdac->DMA_Handle1);
mbed_official 235:685d5f11838f 584 }
mbed_official 235:685d5f11838f 585 else /* Channel2 is used for */
mbed_official 235:685d5f11838f 586 {
mbed_official 235:685d5f11838f 587 status = HAL_DMA_Abort(hdac->DMA_Handle2);
mbed_official 235:685d5f11838f 588 }
mbed_official 235:685d5f11838f 589
mbed_official 235:685d5f11838f 590 /* Check if DMA Channel effectively disabled */
mbed_official 532:fe11edbda85c 591 if(status != HAL_OK)
mbed_official 235:685d5f11838f 592 {
mbed_official 532:fe11edbda85c 593 /* Update DAC state machine to error */
mbed_official 235:685d5f11838f 594 hdac->State = HAL_DAC_STATE_ERROR;
mbed_official 235:685d5f11838f 595 }
mbed_official 235:685d5f11838f 596 else
mbed_official 235:685d5f11838f 597 {
mbed_official 235:685d5f11838f 598 /* Change DAC state */
mbed_official 235:685d5f11838f 599 hdac->State = HAL_DAC_STATE_READY;
mbed_official 235:685d5f11838f 600 }
mbed_official 235:685d5f11838f 601
mbed_official 235:685d5f11838f 602 /* Return function status */
mbed_official 235:685d5f11838f 603 return status;
mbed_official 235:685d5f11838f 604 }
mbed_official 235:685d5f11838f 605
mbed_official 235:685d5f11838f 606 /**
mbed_official 235:685d5f11838f 607 * @brief Returns the last data output value of the selected DAC channel.
mbed_official 235:685d5f11838f 608 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 235:685d5f11838f 609 * the configuration information for the specified DAC.
mbed_official 235:685d5f11838f 610 * @param Channel: The selected DAC channel.
mbed_official 235:685d5f11838f 611 * This parameter can be one of the following values:
mbed_official 235:685d5f11838f 612 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 235:685d5f11838f 613 * @arg DAC_CHANNEL_2: DAC Channel2 selected
mbed_official 235:685d5f11838f 614 * @retval The selected DAC channel data output value.
mbed_official 235:685d5f11838f 615 */
mbed_official 235:685d5f11838f 616 uint32_t HAL_DAC_GetValue(DAC_HandleTypeDef* hdac, uint32_t Channel)
mbed_official 235:685d5f11838f 617 {
mbed_official 235:685d5f11838f 618 /* Check the parameters */
mbed_official 235:685d5f11838f 619 assert_param(IS_DAC_CHANNEL(Channel));
mbed_official 235:685d5f11838f 620
mbed_official 235:685d5f11838f 621 /* Returns the DAC channel data output register value */
mbed_official 235:685d5f11838f 622 if(Channel == DAC_CHANNEL_1)
mbed_official 235:685d5f11838f 623 {
mbed_official 235:685d5f11838f 624 return hdac->Instance->DOR1;
mbed_official 235:685d5f11838f 625 }
mbed_official 235:685d5f11838f 626 else
mbed_official 235:685d5f11838f 627 {
mbed_official 235:685d5f11838f 628 return hdac->Instance->DOR2;
mbed_official 235:685d5f11838f 629 }
mbed_official 235:685d5f11838f 630 }
mbed_official 235:685d5f11838f 631
mbed_official 235:685d5f11838f 632 /**
mbed_official 235:685d5f11838f 633 * @brief Handles DAC interrupt request
mbed_official 235:685d5f11838f 634 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 235:685d5f11838f 635 * the configuration information for the specified DAC.
mbed_official 235:685d5f11838f 636 * @retval None
mbed_official 235:685d5f11838f 637 */
mbed_official 235:685d5f11838f 638 void HAL_DAC_IRQHandler(DAC_HandleTypeDef* hdac)
mbed_official 235:685d5f11838f 639 {
mbed_official 532:fe11edbda85c 640 /* Check underrun channel 1 flag */
mbed_official 235:685d5f11838f 641 if(__HAL_DAC_GET_FLAG(hdac, DAC_FLAG_DMAUDR1))
mbed_official 235:685d5f11838f 642 {
mbed_official 235:685d5f11838f 643 /* Change DAC state to error state */
mbed_official 235:685d5f11838f 644 hdac->State = HAL_DAC_STATE_ERROR;
mbed_official 235:685d5f11838f 645
mbed_official 532:fe11edbda85c 646 /* Set DAC error code to channel1 DMA underrun error */
mbed_official 235:685d5f11838f 647 hdac->ErrorCode |= HAL_DAC_ERROR_DMAUNDERRUNCH1;
mbed_official 235:685d5f11838f 648
mbed_official 235:685d5f11838f 649 /* Clear the underrun flag */
mbed_official 235:685d5f11838f 650 __HAL_DAC_CLEAR_FLAG(hdac,DAC_FLAG_DMAUDR1);
mbed_official 235:685d5f11838f 651
mbed_official 235:685d5f11838f 652 /* Disable the selected DAC channel1 DMA request */
mbed_official 235:685d5f11838f 653 hdac->Instance->CR &= ~DAC_CR_DMAEN1;
mbed_official 235:685d5f11838f 654
mbed_official 235:685d5f11838f 655 /* Error callback */
mbed_official 235:685d5f11838f 656 HAL_DAC_DMAUnderrunCallbackCh1(hdac);
mbed_official 235:685d5f11838f 657 }
mbed_official 532:fe11edbda85c 658 /* Check underrun channel 2 flag */
mbed_official 532:fe11edbda85c 659 if(__HAL_DAC_GET_FLAG(hdac, DAC_FLAG_DMAUDR2))
mbed_official 235:685d5f11838f 660 {
mbed_official 235:685d5f11838f 661 /* Change DAC state to error state */
mbed_official 235:685d5f11838f 662 hdac->State = HAL_DAC_STATE_ERROR;
mbed_official 235:685d5f11838f 663
mbed_official 235:685d5f11838f 664 /* Set DAC error code to channel2 DMA underrun error */
mbed_official 235:685d5f11838f 665 hdac->ErrorCode |= HAL_DAC_ERROR_DMAUNDERRUNCH2;
mbed_official 235:685d5f11838f 666
mbed_official 235:685d5f11838f 667 /* Clear the underrun flag */
mbed_official 235:685d5f11838f 668 __HAL_DAC_CLEAR_FLAG(hdac,DAC_FLAG_DMAUDR2);
mbed_official 235:685d5f11838f 669
mbed_official 235:685d5f11838f 670 /* Disable the selected DAC channel1 DMA request */
mbed_official 235:685d5f11838f 671 hdac->Instance->CR &= ~DAC_CR_DMAEN2;
mbed_official 235:685d5f11838f 672
mbed_official 235:685d5f11838f 673 /* Error callback */
mbed_official 235:685d5f11838f 674 HAL_DACEx_DMAUnderrunCallbackCh2(hdac);
mbed_official 235:685d5f11838f 675 }
mbed_official 235:685d5f11838f 676 }
mbed_official 235:685d5f11838f 677
mbed_official 235:685d5f11838f 678 /**
mbed_official 235:685d5f11838f 679 * @brief Conversion complete callback in non blocking mode for Channel1
mbed_official 235:685d5f11838f 680 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 235:685d5f11838f 681 * the configuration information for the specified DAC.
mbed_official 235:685d5f11838f 682 * @retval None
mbed_official 235:685d5f11838f 683 */
mbed_official 235:685d5f11838f 684 __weak void HAL_DAC_ConvCpltCallbackCh1(DAC_HandleTypeDef* hdac)
mbed_official 235:685d5f11838f 685 {
mbed_official 235:685d5f11838f 686 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 235:685d5f11838f 687 the HAL_DAC_ConvCpltCallback could be implemented in the user file
mbed_official 235:685d5f11838f 688 */
mbed_official 235:685d5f11838f 689 }
mbed_official 235:685d5f11838f 690
mbed_official 235:685d5f11838f 691 /**
mbed_official 235:685d5f11838f 692 * @brief Conversion half DMA transfer callback in non blocking mode for Channel1
mbed_official 235:685d5f11838f 693 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 235:685d5f11838f 694 * the configuration information for the specified DAC.
mbed_official 235:685d5f11838f 695 * @retval None
mbed_official 235:685d5f11838f 696 */
mbed_official 235:685d5f11838f 697 __weak void HAL_DAC_ConvHalfCpltCallbackCh1(DAC_HandleTypeDef* hdac)
mbed_official 235:685d5f11838f 698 {
mbed_official 235:685d5f11838f 699 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 235:685d5f11838f 700 the HAL_DAC_ConvHalfCpltCallbackCh1 could be implemented in the user file
mbed_official 235:685d5f11838f 701 */
mbed_official 235:685d5f11838f 702 }
mbed_official 235:685d5f11838f 703
mbed_official 235:685d5f11838f 704 /**
mbed_official 235:685d5f11838f 705 * @brief Error DAC callback for Channel1.
mbed_official 235:685d5f11838f 706 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 235:685d5f11838f 707 * the configuration information for the specified DAC.
mbed_official 235:685d5f11838f 708 * @retval None
mbed_official 235:685d5f11838f 709 */
mbed_official 235:685d5f11838f 710 __weak void HAL_DAC_ErrorCallbackCh1(DAC_HandleTypeDef *hdac)
mbed_official 235:685d5f11838f 711 {
mbed_official 235:685d5f11838f 712 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 532:fe11edbda85c 713 the HAL_DAC_ErrorCallbackCh1 could be implemented in the user file
mbed_official 235:685d5f11838f 714 */
mbed_official 235:685d5f11838f 715 }
mbed_official 235:685d5f11838f 716
mbed_official 235:685d5f11838f 717 /**
mbed_official 235:685d5f11838f 718 * @brief DMA underrun DAC callback for channel1.
mbed_official 235:685d5f11838f 719 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 235:685d5f11838f 720 * the configuration information for the specified DAC.
mbed_official 235:685d5f11838f 721 * @retval None
mbed_official 235:685d5f11838f 722 */
mbed_official 235:685d5f11838f 723 __weak void HAL_DAC_DMAUnderrunCallbackCh1(DAC_HandleTypeDef *hdac)
mbed_official 235:685d5f11838f 724 {
mbed_official 235:685d5f11838f 725 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 235:685d5f11838f 726 the HAL_DAC_DMAUnderrunCallbackCh1 could be implemented in the user file
mbed_official 235:685d5f11838f 727 */
mbed_official 235:685d5f11838f 728 }
mbed_official 235:685d5f11838f 729
mbed_official 235:685d5f11838f 730 /**
mbed_official 235:685d5f11838f 731 * @}
mbed_official 235:685d5f11838f 732 */
mbed_official 235:685d5f11838f 733
mbed_official 532:fe11edbda85c 734 /** @defgroup DAC_Exported_Functions_Group3 Peripheral Control functions
mbed_official 235:685d5f11838f 735 * @brief Peripheral Control functions
mbed_official 235:685d5f11838f 736 *
mbed_official 235:685d5f11838f 737 @verbatim
mbed_official 235:685d5f11838f 738 ==============================================================================
mbed_official 235:685d5f11838f 739 ##### Peripheral Control functions #####
mbed_official 235:685d5f11838f 740 ==============================================================================
mbed_official 235:685d5f11838f 741 [..] This section provides functions allowing to:
mbed_official 235:685d5f11838f 742 (+) Configure channels.
mbed_official 235:685d5f11838f 743 (+) Set the specified data holding register value for DAC channel.
mbed_official 235:685d5f11838f 744
mbed_official 235:685d5f11838f 745 @endverbatim
mbed_official 235:685d5f11838f 746 * @{
mbed_official 235:685d5f11838f 747 */
mbed_official 235:685d5f11838f 748
mbed_official 235:685d5f11838f 749 /**
mbed_official 235:685d5f11838f 750 * @brief Configures the selected DAC channel.
mbed_official 235:685d5f11838f 751 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 235:685d5f11838f 752 * the configuration information for the specified DAC.
mbed_official 235:685d5f11838f 753 * @param sConfig: DAC configuration structure.
mbed_official 235:685d5f11838f 754 * @param Channel: The selected DAC channel.
mbed_official 235:685d5f11838f 755 * This parameter can be one of the following values:
mbed_official 235:685d5f11838f 756 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 235:685d5f11838f 757 * @arg DAC_CHANNEL_2: DAC Channel2 selected
mbed_official 235:685d5f11838f 758 * @retval HAL status
mbed_official 235:685d5f11838f 759 */
mbed_official 235:685d5f11838f 760 HAL_StatusTypeDef HAL_DAC_ConfigChannel(DAC_HandleTypeDef* hdac, DAC_ChannelConfTypeDef* sConfig, uint32_t Channel)
mbed_official 235:685d5f11838f 761 {
mbed_official 235:685d5f11838f 762 uint32_t tmpreg1 = 0, tmpreg2 = 0;
mbed_official 235:685d5f11838f 763
mbed_official 235:685d5f11838f 764 /* Check the DAC parameters */
mbed_official 235:685d5f11838f 765 assert_param(IS_DAC_TRIGGER(sConfig->DAC_Trigger));
mbed_official 235:685d5f11838f 766 assert_param(IS_DAC_OUTPUT_BUFFER_STATE(sConfig->DAC_OutputBuffer));
mbed_official 235:685d5f11838f 767 assert_param(IS_DAC_CHANNEL(Channel));
mbed_official 235:685d5f11838f 768
mbed_official 235:685d5f11838f 769 /* Process locked */
mbed_official 235:685d5f11838f 770 __HAL_LOCK(hdac);
mbed_official 235:685d5f11838f 771
mbed_official 235:685d5f11838f 772 /* Change DAC state */
mbed_official 235:685d5f11838f 773 hdac->State = HAL_DAC_STATE_BUSY;
mbed_official 235:685d5f11838f 774
mbed_official 235:685d5f11838f 775 /* Get the DAC CR value */
mbed_official 532:fe11edbda85c 776 tmpreg1 = hdac->Instance->CR;
mbed_official 235:685d5f11838f 777 /* Clear BOFFx, TENx, TSELx, WAVEx and MAMPx bits */
mbed_official 235:685d5f11838f 778 tmpreg1 &= ~(((uint32_t)(DAC_CR_MAMP1 | DAC_CR_WAVE1 | DAC_CR_TSEL1 | DAC_CR_TEN1 | DAC_CR_BOFF1)) << Channel);
mbed_official 235:685d5f11838f 779 /* Configure for the selected DAC channel: buffer output, trigger */
mbed_official 235:685d5f11838f 780 /* Set TSELx and TENx bits according to DAC_Trigger value */
mbed_official 235:685d5f11838f 781 /* Set BOFFx bit according to DAC_OutputBuffer value */
mbed_official 235:685d5f11838f 782 tmpreg2 = (sConfig->DAC_Trigger | sConfig->DAC_OutputBuffer);
mbed_official 235:685d5f11838f 783 /* Calculate CR register value depending on DAC_Channel */
mbed_official 235:685d5f11838f 784 tmpreg1 |= tmpreg2 << Channel;
mbed_official 235:685d5f11838f 785 /* Write to DAC CR */
mbed_official 532:fe11edbda85c 786 hdac->Instance->CR = tmpreg1;
mbed_official 235:685d5f11838f 787 /* Disable wave generation */
mbed_official 532:fe11edbda85c 788 hdac->Instance->CR &= ~(DAC_CR_WAVE1 << Channel);
mbed_official 235:685d5f11838f 789
mbed_official 235:685d5f11838f 790 /* Change DAC state */
mbed_official 235:685d5f11838f 791 hdac->State = HAL_DAC_STATE_READY;
mbed_official 235:685d5f11838f 792
mbed_official 235:685d5f11838f 793 /* Process unlocked */
mbed_official 235:685d5f11838f 794 __HAL_UNLOCK(hdac);
mbed_official 235:685d5f11838f 795
mbed_official 235:685d5f11838f 796 /* Return function status */
mbed_official 235:685d5f11838f 797 return HAL_OK;
mbed_official 235:685d5f11838f 798 }
mbed_official 235:685d5f11838f 799
mbed_official 235:685d5f11838f 800 /**
mbed_official 235:685d5f11838f 801 * @brief Set the specified data holding register value for DAC channel.
mbed_official 235:685d5f11838f 802 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 235:685d5f11838f 803 * the configuration information for the specified DAC.
mbed_official 235:685d5f11838f 804 * @param Channel: The selected DAC channel.
mbed_official 235:685d5f11838f 805 * This parameter can be one of the following values:
mbed_official 235:685d5f11838f 806 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 235:685d5f11838f 807 * @arg DAC_CHANNEL_2: DAC Channel2 selected
mbed_official 235:685d5f11838f 808 * @param Alignment: Specifies the data alignment.
mbed_official 235:685d5f11838f 809 * This parameter can be one of the following values:
mbed_official 235:685d5f11838f 810 * @arg DAC_ALIGN_8B_R: 8bit right data alignment selected
mbed_official 235:685d5f11838f 811 * @arg DAC_ALIGN_12B_L: 12bit left data alignment selected
mbed_official 235:685d5f11838f 812 * @arg DAC_ALIGN_12B_R: 12bit right data alignment selected
mbed_official 235:685d5f11838f 813 * @param Data: Data to be loaded in the selected data holding register.
mbed_official 235:685d5f11838f 814 * @retval HAL status
mbed_official 235:685d5f11838f 815 */
mbed_official 235:685d5f11838f 816 HAL_StatusTypeDef HAL_DAC_SetValue(DAC_HandleTypeDef* hdac, uint32_t Channel, uint32_t Alignment, uint32_t Data)
mbed_official 235:685d5f11838f 817 {
mbed_official 235:685d5f11838f 818 __IO uint32_t tmp = 0;
mbed_official 235:685d5f11838f 819
mbed_official 235:685d5f11838f 820 /* Check the parameters */
mbed_official 235:685d5f11838f 821 assert_param(IS_DAC_CHANNEL(Channel));
mbed_official 235:685d5f11838f 822 assert_param(IS_DAC_ALIGN(Alignment));
mbed_official 235:685d5f11838f 823 assert_param(IS_DAC_DATA(Data));
mbed_official 235:685d5f11838f 824
mbed_official 235:685d5f11838f 825 tmp = (uint32_t)hdac->Instance;
mbed_official 235:685d5f11838f 826 if(Channel == DAC_CHANNEL_1)
mbed_official 235:685d5f11838f 827 {
mbed_official 532:fe11edbda85c 828 tmp += DAC_DHR12R1_ALIGNMENT(Alignment);
mbed_official 235:685d5f11838f 829 }
mbed_official 235:685d5f11838f 830 else
mbed_official 235:685d5f11838f 831 {
mbed_official 532:fe11edbda85c 832 tmp += DAC_DHR12R2_ALIGNMENT(Alignment);
mbed_official 235:685d5f11838f 833 }
mbed_official 235:685d5f11838f 834
mbed_official 235:685d5f11838f 835 /* Set the DAC channel1 selected data holding register */
mbed_official 235:685d5f11838f 836 *(__IO uint32_t *) tmp = Data;
mbed_official 235:685d5f11838f 837
mbed_official 235:685d5f11838f 838 /* Return function status */
mbed_official 235:685d5f11838f 839 return HAL_OK;
mbed_official 235:685d5f11838f 840 }
mbed_official 235:685d5f11838f 841
mbed_official 235:685d5f11838f 842 /**
mbed_official 235:685d5f11838f 843 * @}
mbed_official 235:685d5f11838f 844 */
mbed_official 235:685d5f11838f 845
mbed_official 532:fe11edbda85c 846 /** @defgroup DAC_Exported_Functions_Group4 Peripheral State and Errors functions
mbed_official 235:685d5f11838f 847 * @brief Peripheral State and Errors functions
mbed_official 235:685d5f11838f 848 *
mbed_official 235:685d5f11838f 849 @verbatim
mbed_official 235:685d5f11838f 850 ==============================================================================
mbed_official 235:685d5f11838f 851 ##### Peripheral State and Errors functions #####
mbed_official 235:685d5f11838f 852 ==============================================================================
mbed_official 235:685d5f11838f 853 [..]
mbed_official 235:685d5f11838f 854 This subsection provides functions allowing to
mbed_official 235:685d5f11838f 855 (+) Check the DAC state.
mbed_official 235:685d5f11838f 856 (+) Check the DAC Errors.
mbed_official 235:685d5f11838f 857
mbed_official 235:685d5f11838f 858 @endverbatim
mbed_official 235:685d5f11838f 859 * @{
mbed_official 235:685d5f11838f 860 */
mbed_official 235:685d5f11838f 861
mbed_official 235:685d5f11838f 862 /**
mbed_official 235:685d5f11838f 863 * @brief return the DAC state
mbed_official 235:685d5f11838f 864 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 235:685d5f11838f 865 * the configuration information for the specified DAC.
mbed_official 235:685d5f11838f 866 * @retval HAL state
mbed_official 235:685d5f11838f 867 */
mbed_official 235:685d5f11838f 868 HAL_DAC_StateTypeDef HAL_DAC_GetState(DAC_HandleTypeDef* hdac)
mbed_official 235:685d5f11838f 869 {
mbed_official 235:685d5f11838f 870 /* Return DAC state */
mbed_official 235:685d5f11838f 871 return hdac->State;
mbed_official 235:685d5f11838f 872 }
mbed_official 235:685d5f11838f 873
mbed_official 235:685d5f11838f 874
mbed_official 235:685d5f11838f 875 /**
mbed_official 235:685d5f11838f 876 * @brief Return the DAC error code
mbed_official 235:685d5f11838f 877 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 235:685d5f11838f 878 * the configuration information for the specified DAC.
mbed_official 235:685d5f11838f 879 * @retval DAC Error Code
mbed_official 235:685d5f11838f 880 */
mbed_official 235:685d5f11838f 881 uint32_t HAL_DAC_GetError(DAC_HandleTypeDef *hdac)
mbed_official 235:685d5f11838f 882 {
mbed_official 235:685d5f11838f 883 return hdac->ErrorCode;
mbed_official 235:685d5f11838f 884 }
mbed_official 235:685d5f11838f 885
mbed_official 235:685d5f11838f 886 /**
mbed_official 235:685d5f11838f 887 * @}
mbed_official 235:685d5f11838f 888 */
mbed_official 235:685d5f11838f 889
mbed_official 235:685d5f11838f 890 /**
mbed_official 235:685d5f11838f 891 * @brief DMA conversion complete callback.
mbed_official 235:685d5f11838f 892 * @param hdma: pointer to a DMA_HandleTypeDef structure that contains
mbed_official 235:685d5f11838f 893 * the configuration information for the specified DMA module.
mbed_official 235:685d5f11838f 894 * @retval None
mbed_official 235:685d5f11838f 895 */
mbed_official 235:685d5f11838f 896 static void DAC_DMAConvCpltCh1(DMA_HandleTypeDef *hdma)
mbed_official 235:685d5f11838f 897 {
mbed_official 235:685d5f11838f 898 DAC_HandleTypeDef* hdac = ( DAC_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent;
mbed_official 235:685d5f11838f 899
mbed_official 235:685d5f11838f 900 HAL_DAC_ConvCpltCallbackCh1(hdac);
mbed_official 235:685d5f11838f 901
mbed_official 235:685d5f11838f 902 hdac->State= HAL_DAC_STATE_READY;
mbed_official 235:685d5f11838f 903 }
mbed_official 235:685d5f11838f 904
mbed_official 235:685d5f11838f 905 /**
mbed_official 235:685d5f11838f 906 * @brief DMA half transfer complete callback.
mbed_official 235:685d5f11838f 907 * @param hdma: pointer to a DMA_HandleTypeDef structure that contains
mbed_official 235:685d5f11838f 908 * the configuration information for the specified DMA module.
mbed_official 235:685d5f11838f 909 * @retval None
mbed_official 235:685d5f11838f 910 */
mbed_official 235:685d5f11838f 911 static void DAC_DMAHalfConvCpltCh1(DMA_HandleTypeDef *hdma)
mbed_official 235:685d5f11838f 912 {
mbed_official 235:685d5f11838f 913 DAC_HandleTypeDef* hdac = ( DAC_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent;
mbed_official 235:685d5f11838f 914 /* Conversion complete callback */
mbed_official 235:685d5f11838f 915 HAL_DAC_ConvHalfCpltCallbackCh1(hdac);
mbed_official 235:685d5f11838f 916 }
mbed_official 235:685d5f11838f 917
mbed_official 235:685d5f11838f 918 /**
mbed_official 235:685d5f11838f 919 * @brief DMA error callback
mbed_official 235:685d5f11838f 920 * @param hdma: pointer to a DMA_HandleTypeDef structure that contains
mbed_official 235:685d5f11838f 921 * the configuration information for the specified DMA module.
mbed_official 235:685d5f11838f 922 * @retval None
mbed_official 235:685d5f11838f 923 */
mbed_official 235:685d5f11838f 924 static void DAC_DMAErrorCh1(DMA_HandleTypeDef *hdma)
mbed_official 235:685d5f11838f 925 {
mbed_official 235:685d5f11838f 926 DAC_HandleTypeDef* hdac = ( DAC_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent;
mbed_official 235:685d5f11838f 927
mbed_official 235:685d5f11838f 928 /* Set DAC error code to DMA error */
mbed_official 235:685d5f11838f 929 hdac->ErrorCode |= HAL_DAC_ERROR_DMA;
mbed_official 235:685d5f11838f 930
mbed_official 235:685d5f11838f 931 HAL_DAC_ErrorCallbackCh1(hdac);
mbed_official 235:685d5f11838f 932
mbed_official 235:685d5f11838f 933 hdac->State= HAL_DAC_STATE_READY;
mbed_official 235:685d5f11838f 934 }
mbed_official 235:685d5f11838f 935
mbed_official 235:685d5f11838f 936 /**
mbed_official 235:685d5f11838f 937 * @}
mbed_official 235:685d5f11838f 938 */
mbed_official 532:fe11edbda85c 939 #endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx ||\
mbed_official 532:fe11edbda85c 940 STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx ||\
mbed_official 532:fe11edbda85c 941 STM32F446xx
mbed_official 532:fe11edbda85c 942 */
mbed_official 235:685d5f11838f 943 #endif /* HAL_DAC_MODULE_ENABLED */
mbed_official 235:685d5f11838f 944
mbed_official 235:685d5f11838f 945 /**
mbed_official 235:685d5f11838f 946 * @}
mbed_official 235:685d5f11838f 947 */
mbed_official 235:685d5f11838f 948
mbed_official 235:685d5f11838f 949 /**
mbed_official 235:685d5f11838f 950 * @}
mbed_official 235:685d5f11838f 951 */
mbed_official 235:685d5f11838f 952
mbed_official 235:685d5f11838f 953 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/