mbed library sources

Fork of mbed-src by mbed official

Committer:
moirans2
Date:
Wed Jan 14 20:53:08 2015 +0000
Revision:
445:9a3ffe6cfa19
Parent:
441:d2c15dda23c1
internal clock stm32L051

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.c
mbed_official 340:28d1f895c6fe 4 * @author MCD Application Team
mbed_official 441:d2c15dda23c1 5 * @version V1.2.0
mbed_official 441:d2c15dda23c1 6 * @date 11-December-2014
mbed_official 340:28d1f895c6fe 7 * @brief DAC HAL module driver.
mbed_official 340:28d1f895c6fe 8 * This file provides firmware functions to manage the following
mbed_official 340:28d1f895c6fe 9 * functionalities of the Digital to Analog Converter (DAC) peripheral:
mbed_official 340:28d1f895c6fe 10 * + Initialization and de-initialization functions
mbed_official 340:28d1f895c6fe 11 * + IO operation functions
mbed_official 340:28d1f895c6fe 12 * + Peripheral Control functions
mbed_official 340:28d1f895c6fe 13 * + Peripheral State and Errors functions
mbed_official 340:28d1f895c6fe 14 *
mbed_official 340:28d1f895c6fe 15 *
mbed_official 340:28d1f895c6fe 16 @verbatim
mbed_official 340:28d1f895c6fe 17 ==============================================================================
mbed_official 340:28d1f895c6fe 18 ##### DAC Peripheral features #####
mbed_official 340:28d1f895c6fe 19 ==============================================================================
mbed_official 340:28d1f895c6fe 20 [..]
mbed_official 340:28d1f895c6fe 21 *** DAC Channels ***
mbed_official 340:28d1f895c6fe 22 ====================
mbed_official 340:28d1f895c6fe 23 [..]
mbed_official 340:28d1f895c6fe 24 STM32F0 devices integrates no, one or two 12-bit Digital Analog Converters.
mbed_official 340:28d1f895c6fe 25 STM32F05x devices have one converter (channel1)
mbed_official 340:28d1f895c6fe 26 STM32F07x & STM32F09x devices have two converters (i.e. channel1 & channel2)
mbed_official 340:28d1f895c6fe 27
mbed_official 340:28d1f895c6fe 28 When 2 converters are present (i.e. channel1 & channel2) they
mbed_official 340:28d1f895c6fe 29 can be used independently or simultaneously (dual mode):
mbed_official 340:28d1f895c6fe 30 (#) DAC channel1 with DAC_OUT1 (PA4) as output
mbed_official 340:28d1f895c6fe 31 (#) DAC channel2 with DAC_OUT2 (PA5) as output
mbed_official 340:28d1f895c6fe 32
mbed_official 340:28d1f895c6fe 33 *** DAC Triggers ***
mbed_official 340:28d1f895c6fe 34 ====================
mbed_official 340:28d1f895c6fe 35 [..]
mbed_official 340:28d1f895c6fe 36 Digital to Analog conversion can be non-triggered using DAC_Trigger_None
mbed_official 340:28d1f895c6fe 37 and DAC_OUT1/DAC_OUT2 is available once writing to DHRx register.
mbed_official 340:28d1f895c6fe 38 [..]
mbed_official 340:28d1f895c6fe 39 Digital to Analog conversion can be triggered by:
mbed_official 340:28d1f895c6fe 40 (#) External event: EXTI Line 9 (any GPIOx_Pin9) using DAC_Trigger_Ext_IT9.
mbed_official 340:28d1f895c6fe 41 The used pin (GPIOx_Pin9) must be configured in input mode.
mbed_official 340:28d1f895c6fe 42
mbed_official 340:28d1f895c6fe 43 (#) Timers TRGO: TIM2, TIM3, TIM6, and TIM15
mbed_official 340:28d1f895c6fe 44 (DAC_Trigger_T2_TRGO, DAC_Trigger_T3_TRGO...)
mbed_official 340:28d1f895c6fe 45
mbed_official 340:28d1f895c6fe 46 (#) Software using DAC_Trigger_Software
mbed_official 340:28d1f895c6fe 47
mbed_official 340:28d1f895c6fe 48 *** DAC Buffer mode feature ***
mbed_official 340:28d1f895c6fe 49 ===============================
mbed_official 340:28d1f895c6fe 50 [..]
mbed_official 340:28d1f895c6fe 51 Each DAC channel integrates an output buffer that can be used to
mbed_official 340:28d1f895c6fe 52 reduce the output impedance, and to drive external loads directly
mbed_official 340:28d1f895c6fe 53 without having to add an external operational amplifier.
mbed_official 340:28d1f895c6fe 54 To enable, the output buffer use
mbed_official 340:28d1f895c6fe 55 sConfig.DAC_OutputBuffer = DAC_OutputBuffer_Enable;
mbed_official 340:28d1f895c6fe 56 [..]
mbed_official 340:28d1f895c6fe 57 (@) Refer to the device datasheet for more details about output
mbed_official 340:28d1f895c6fe 58 impedance value with and without output buffer.
mbed_official 340:28d1f895c6fe 59
mbed_official 340:28d1f895c6fe 60 *** DAC wave generation feature ***
mbed_official 340:28d1f895c6fe 61 ===================================
mbed_official 340:28d1f895c6fe 62 [..]
mbed_official 340:28d1f895c6fe 63 Both DAC channels can be used to generate
mbed_official 340:28d1f895c6fe 64 (#) Noise wave
mbed_official 340:28d1f895c6fe 65 (#) Triangle wave
mbed_official 340:28d1f895c6fe 66
mbed_official 340:28d1f895c6fe 67 *** DAC data format ***
mbed_official 340:28d1f895c6fe 68 =======================
mbed_official 340:28d1f895c6fe 69 [..]
mbed_official 340:28d1f895c6fe 70 The DAC data format can be:
mbed_official 340:28d1f895c6fe 71 (#) 8-bit right alignment using DAC_ALIGN_8B_R
mbed_official 340:28d1f895c6fe 72 (#) 12-bit left alignment using DAC_ALIGN_12B_L
mbed_official 340:28d1f895c6fe 73 (#) 12-bit right alignment using DAC_ALIGN_12B_R
mbed_official 340:28d1f895c6fe 74
mbed_official 340:28d1f895c6fe 75 *** DAC data value to voltage correspondence ***
mbed_official 340:28d1f895c6fe 76 ================================================
mbed_official 340:28d1f895c6fe 77 [..]
mbed_official 340:28d1f895c6fe 78 The analog output voltage on each DAC channel pin is determined
mbed_official 340:28d1f895c6fe 79 by the following equation:
mbed_official 340:28d1f895c6fe 80 DAC_OUTx = VREF+ * DOR / 4095
mbed_official 340:28d1f895c6fe 81 with DOR is the Data Output Register
mbed_official 340:28d1f895c6fe 82 VEF+ is the input voltage reference (refer to the device datasheet)
mbed_official 340:28d1f895c6fe 83 e.g. To set DAC_OUT1 to 0.7V, use
mbed_official 340:28d1f895c6fe 84 Assuming that VREF+ = 3.3V, DAC_OUT1 = (3.3 * 868) / 4095 = 0.7V
mbed_official 340:28d1f895c6fe 85
mbed_official 340:28d1f895c6fe 86 *** DMA requests ***
mbed_official 340:28d1f895c6fe 87 =====================
mbed_official 340:28d1f895c6fe 88 [..]
mbed_official 340:28d1f895c6fe 89 A DMA1 request can be generated when an external trigger (but not
mbed_official 340:28d1f895c6fe 90 a software trigger) occurs if DMA1 requests are enabled using
mbed_official 340:28d1f895c6fe 91 HAL_DAC_Start_DMA()
mbed_official 340:28d1f895c6fe 92 [..]
mbed_official 340:28d1f895c6fe 93 DMA1 requests are mapped as following:
mbed_official 340:28d1f895c6fe 94 (#) DAC channel1 : mapped on DMA1 channel3 which must be
mbed_official 340:28d1f895c6fe 95 already configured
mbed_official 340:28d1f895c6fe 96 (#) DAC channel2 : mapped on DMA1 channel4 which must be
mbed_official 340:28d1f895c6fe 97 already configured
mbed_official 340:28d1f895c6fe 98
mbed_official 340:28d1f895c6fe 99 -@- For Dual mode and specific signal (Triangle and noise) generation please
mbed_official 340:28d1f895c6fe 100 refer to Extension Features Driver description
mbed_official 340:28d1f895c6fe 101 STM32F0 devices with one channel (one converting capability) does not
mbed_official 340:28d1f895c6fe 102 support Dual mode and specific signal (Triangle and noise) generation.
mbed_official 340:28d1f895c6fe 103
mbed_official 340:28d1f895c6fe 104 ##### How to use this driver #####
mbed_official 340:28d1f895c6fe 105 ==============================================================================
mbed_official 340:28d1f895c6fe 106 [..]
mbed_official 340:28d1f895c6fe 107 (+) DAC APB clock must be enabled to get write access to DAC
mbed_official 340:28d1f895c6fe 108 registers using HAL_DAC_Init()
mbed_official 340:28d1f895c6fe 109 (+) Configure DAC_OUTx (DAC_OUT1: PA4, DAC_OUT2: PA5) in analog mode.
mbed_official 340:28d1f895c6fe 110 (+) Configure the DAC channel using HAL_DAC_ConfigChannel() function.
mbed_official 340:28d1f895c6fe 111 (+) Enable the DAC channel using HAL_DAC_Start() or HAL_DAC_Start_DMA functions
mbed_official 340:28d1f895c6fe 112
mbed_official 340:28d1f895c6fe 113 *** Polling mode IO operation ***
mbed_official 340:28d1f895c6fe 114 =================================
mbed_official 340:28d1f895c6fe 115 [..]
mbed_official 340:28d1f895c6fe 116 (+) Start the DAC peripheral using HAL_DAC_Start()
mbed_official 340:28d1f895c6fe 117 (+) To read the DAC last data output value value, use the HAL_DAC_GetValue() function.
mbed_official 340:28d1f895c6fe 118 (+) Stop the DAC peripheral using HAL_DAC_Stop()
mbed_official 340:28d1f895c6fe 119
mbed_official 340:28d1f895c6fe 120 *** DMA mode IO operation ***
mbed_official 340:28d1f895c6fe 121 ==============================
mbed_official 340:28d1f895c6fe 122 [..]
mbed_official 340:28d1f895c6fe 123 (+) Start the DAC peripheral using HAL_DAC_Start_DMA(), at this stage the user specify the length
mbed_official 340:28d1f895c6fe 124 of data to be transfered at each end of conversion
mbed_official 340:28d1f895c6fe 125 (+) At The end of data transfer HAL_DAC_ConvCpltCallbackCh1()or HAL_DAC_ConvCpltCallbackCh2()
mbed_official 340:28d1f895c6fe 126 function is executed and user can add his own code by customization of function pointer
mbed_official 340:28d1f895c6fe 127 HAL_DAC_ConvCpltCallbackCh1 or HAL_DAC_ConvCpltCallbackCh2
mbed_official 340:28d1f895c6fe 128 (+) In case of transfer Error, HAL_DAC_ErrorCallbackCh1() function is executed and user can
mbed_official 340:28d1f895c6fe 129 add his own code by customization of function pointer HAL_DAC_ErrorCallbackCh1
mbed_official 340:28d1f895c6fe 130 (+) Stop the DAC peripheral using HAL_DAC_Stop_DMA()
mbed_official 340:28d1f895c6fe 131
mbed_official 340:28d1f895c6fe 132 *** DAC HAL driver macros list ***
mbed_official 340:28d1f895c6fe 133 =============================================
mbed_official 340:28d1f895c6fe 134 [..]
mbed_official 340:28d1f895c6fe 135 Below the list of most used macros in DAC HAL driver.
mbed_official 340:28d1f895c6fe 136
mbed_official 340:28d1f895c6fe 137 (+) __HAL_DAC_ENABLE : Enable the DAC peripheral
mbed_official 340:28d1f895c6fe 138 (+) __HAL_DAC_DISABLE : Disable the DAC peripheral
mbed_official 340:28d1f895c6fe 139 (+) __HAL_DAC_CLEAR_FLAG: Clear the DAC's pending flags
mbed_official 340:28d1f895c6fe 140 (+) __HAL_DAC_GET_FLAG: Get the selected DAC's flag status
mbed_official 340:28d1f895c6fe 141
mbed_official 340:28d1f895c6fe 142 [..]
mbed_official 340:28d1f895c6fe 143 (@) You can refer to the DAC HAL driver header file for more useful macros
mbed_official 340:28d1f895c6fe 144
mbed_official 340:28d1f895c6fe 145 @endverbatim
mbed_official 340:28d1f895c6fe 146 ******************************************************************************
mbed_official 340:28d1f895c6fe 147 * @attention
mbed_official 340:28d1f895c6fe 148 *
mbed_official 340:28d1f895c6fe 149 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
mbed_official 340:28d1f895c6fe 150 *
mbed_official 340:28d1f895c6fe 151 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 340:28d1f895c6fe 152 * are permitted provided that the following conditions are met:
mbed_official 340:28d1f895c6fe 153 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 340:28d1f895c6fe 154 * this list of conditions and the following disclaimer.
mbed_official 340:28d1f895c6fe 155 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 340:28d1f895c6fe 156 * this list of conditions and the following disclaimer in the documentation
mbed_official 340:28d1f895c6fe 157 * and/or other materials provided with the distribution.
mbed_official 340:28d1f895c6fe 158 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 340:28d1f895c6fe 159 * may be used to endorse or promote products derived from this software
mbed_official 340:28d1f895c6fe 160 * without specific prior written permission.
mbed_official 340:28d1f895c6fe 161 *
mbed_official 340:28d1f895c6fe 162 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 340:28d1f895c6fe 163 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 340:28d1f895c6fe 164 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 340:28d1f895c6fe 165 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 340:28d1f895c6fe 166 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 340:28d1f895c6fe 167 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 340:28d1f895c6fe 168 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 340:28d1f895c6fe 169 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 340:28d1f895c6fe 170 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 340:28d1f895c6fe 171 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 340:28d1f895c6fe 172 *
mbed_official 340:28d1f895c6fe 173 ******************************************************************************
mbed_official 340:28d1f895c6fe 174 */
mbed_official 340:28d1f895c6fe 175
mbed_official 340:28d1f895c6fe 176
mbed_official 340:28d1f895c6fe 177 /* Includes ------------------------------------------------------------------*/
mbed_official 340:28d1f895c6fe 178 #include "stm32f0xx_hal.h"
mbed_official 340:28d1f895c6fe 179
mbed_official 441:d2c15dda23c1 180 #ifdef HAL_DAC_MODULE_ENABLED
mbed_official 441:d2c15dda23c1 181
mbed_official 441:d2c15dda23c1 182 #if defined(STM32F051x8) || defined(STM32F058xx) || \
mbed_official 441:d2c15dda23c1 183 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 441:d2c15dda23c1 184 defined(STM32F091xC) || defined (STM32F098xx)
mbed_official 441:d2c15dda23c1 185
mbed_official 340:28d1f895c6fe 186 /** @addtogroup STM32F0xx_HAL_Driver
mbed_official 340:28d1f895c6fe 187 * @{
mbed_official 340:28d1f895c6fe 188 */
mbed_official 340:28d1f895c6fe 189
mbed_official 340:28d1f895c6fe 190 /** @defgroup DAC DAC HAL module driver
mbed_official 340:28d1f895c6fe 191 * @brief DAC driver modules
mbed_official 340:28d1f895c6fe 192 * @{
mbed_official 340:28d1f895c6fe 193 */
mbed_official 340:28d1f895c6fe 194
mbed_official 340:28d1f895c6fe 195 /* Private typedef -----------------------------------------------------------*/
mbed_official 340:28d1f895c6fe 196 /* Private define ------------------------------------------------------------*/
mbed_official 340:28d1f895c6fe 197 /* Private macro -------------------------------------------------------------*/
mbed_official 340:28d1f895c6fe 198 /* Private variables ---------------------------------------------------------*/
mbed_official 340:28d1f895c6fe 199 /* Private function prototypes -----------------------------------------------*/
mbed_official 340:28d1f895c6fe 200
mbed_official 340:28d1f895c6fe 201 /* Private functions ---------------------------------------------------------*/
mbed_official 340:28d1f895c6fe 202
mbed_official 340:28d1f895c6fe 203 /** @defgroup DAC_Exported_Functions DAC Exported Functions
mbed_official 340:28d1f895c6fe 204 * @{
mbed_official 340:28d1f895c6fe 205 */
mbed_official 340:28d1f895c6fe 206
mbed_official 340:28d1f895c6fe 207 /** @defgroup DAC_Exported_Functions_Group1 Initialization and de-initialization functions
mbed_official 340:28d1f895c6fe 208 * @brief Initialization and Configuration functions
mbed_official 340:28d1f895c6fe 209 *
mbed_official 340:28d1f895c6fe 210 @verbatim
mbed_official 340:28d1f895c6fe 211 ==============================================================================
mbed_official 340:28d1f895c6fe 212 ##### Initialization and de-initialization functions #####
mbed_official 340:28d1f895c6fe 213 ==============================================================================
mbed_official 340:28d1f895c6fe 214 [..] This section provides functions allowing to:
mbed_official 340:28d1f895c6fe 215 (+) Initialize and configure the DAC.
mbed_official 340:28d1f895c6fe 216 (+) De-initialize the DAC.
mbed_official 340:28d1f895c6fe 217
mbed_official 340:28d1f895c6fe 218 @endverbatim
mbed_official 340:28d1f895c6fe 219 * @{
mbed_official 340:28d1f895c6fe 220 */
mbed_official 340:28d1f895c6fe 221
mbed_official 340:28d1f895c6fe 222 /**
mbed_official 340:28d1f895c6fe 223 * @brief Initializes the DAC peripheral according to the specified parameters
mbed_official 340:28d1f895c6fe 224 * in the DAC_InitStruct.
mbed_official 340:28d1f895c6fe 225 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 226 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 227 * @retval HAL status
mbed_official 340:28d1f895c6fe 228 */
mbed_official 340:28d1f895c6fe 229 HAL_StatusTypeDef HAL_DAC_Init(DAC_HandleTypeDef* hdac)
mbed_official 340:28d1f895c6fe 230 {
mbed_official 340:28d1f895c6fe 231 /* Check DAC handle */
mbed_official 441:d2c15dda23c1 232 if(hdac == NULL)
mbed_official 340:28d1f895c6fe 233 {
mbed_official 340:28d1f895c6fe 234 return HAL_ERROR;
mbed_official 340:28d1f895c6fe 235 }
mbed_official 340:28d1f895c6fe 236 /* Check the parameters */
mbed_official 340:28d1f895c6fe 237 assert_param(IS_DAC_ALL_INSTANCE(hdac->Instance));
mbed_official 340:28d1f895c6fe 238
mbed_official 340:28d1f895c6fe 239 if(hdac->State == HAL_DAC_STATE_RESET)
mbed_official 340:28d1f895c6fe 240 {
mbed_official 340:28d1f895c6fe 241 /* Init the low level hardware */
mbed_official 340:28d1f895c6fe 242 HAL_DAC_MspInit(hdac);
mbed_official 340:28d1f895c6fe 243 }
mbed_official 340:28d1f895c6fe 244
mbed_official 340:28d1f895c6fe 245 /* Initialize the DAC state*/
mbed_official 340:28d1f895c6fe 246 hdac->State = HAL_DAC_STATE_BUSY;
mbed_official 340:28d1f895c6fe 247
mbed_official 340:28d1f895c6fe 248 /* Set DAC error code to none */
mbed_official 340:28d1f895c6fe 249 hdac->ErrorCode = HAL_DAC_ERROR_NONE;
mbed_official 340:28d1f895c6fe 250
mbed_official 340:28d1f895c6fe 251 /* Initialize the DAC state*/
mbed_official 340:28d1f895c6fe 252 hdac->State = HAL_DAC_STATE_READY;
mbed_official 340:28d1f895c6fe 253
mbed_official 340:28d1f895c6fe 254 /* Return function status */
mbed_official 340:28d1f895c6fe 255 return HAL_OK;
mbed_official 340:28d1f895c6fe 256 }
mbed_official 340:28d1f895c6fe 257
mbed_official 340:28d1f895c6fe 258 /**
mbed_official 340:28d1f895c6fe 259 * @brief Deinitializes the DAC peripheral registers to their default reset values.
mbed_official 340:28d1f895c6fe 260 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 261 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 262 * @retval HAL status
mbed_official 340:28d1f895c6fe 263 */
mbed_official 340:28d1f895c6fe 264 HAL_StatusTypeDef HAL_DAC_DeInit(DAC_HandleTypeDef* hdac)
mbed_official 340:28d1f895c6fe 265 {
mbed_official 340:28d1f895c6fe 266 /* Check DAC handle */
mbed_official 441:d2c15dda23c1 267 if(hdac == NULL)
mbed_official 340:28d1f895c6fe 268 {
mbed_official 340:28d1f895c6fe 269 return HAL_ERROR;
mbed_official 340:28d1f895c6fe 270 }
mbed_official 340:28d1f895c6fe 271
mbed_official 340:28d1f895c6fe 272 /* Check the parameters */
mbed_official 340:28d1f895c6fe 273 assert_param(IS_DAC_ALL_INSTANCE(hdac->Instance));
mbed_official 340:28d1f895c6fe 274
mbed_official 340:28d1f895c6fe 275 /* Change DAC state */
mbed_official 340:28d1f895c6fe 276 hdac->State = HAL_DAC_STATE_BUSY;
mbed_official 340:28d1f895c6fe 277
mbed_official 340:28d1f895c6fe 278 /* DeInit the low level hardware */
mbed_official 340:28d1f895c6fe 279 HAL_DAC_MspDeInit(hdac);
mbed_official 340:28d1f895c6fe 280
mbed_official 340:28d1f895c6fe 281 /* Set DAC error code to none */
mbed_official 340:28d1f895c6fe 282 hdac->ErrorCode = HAL_DAC_ERROR_NONE;
mbed_official 340:28d1f895c6fe 283
mbed_official 340:28d1f895c6fe 284 /* Change DAC state */
mbed_official 340:28d1f895c6fe 285 hdac->State = HAL_DAC_STATE_RESET;
mbed_official 340:28d1f895c6fe 286
mbed_official 340:28d1f895c6fe 287 /* Release Lock */
mbed_official 340:28d1f895c6fe 288 __HAL_UNLOCK(hdac);
mbed_official 340:28d1f895c6fe 289
mbed_official 340:28d1f895c6fe 290 /* Return function status */
mbed_official 340:28d1f895c6fe 291 return HAL_OK;
mbed_official 340:28d1f895c6fe 292 }
mbed_official 340:28d1f895c6fe 293
mbed_official 340:28d1f895c6fe 294 /**
mbed_official 340:28d1f895c6fe 295 * @brief Initializes the DAC MSP.
mbed_official 340:28d1f895c6fe 296 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 297 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 298 * @retval None
mbed_official 340:28d1f895c6fe 299 */
mbed_official 340:28d1f895c6fe 300 __weak void HAL_DAC_MspInit(DAC_HandleTypeDef* hdac)
mbed_official 340:28d1f895c6fe 301 {
mbed_official 340:28d1f895c6fe 302 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 340:28d1f895c6fe 303 the HAL_DAC_MspInit could be implemented in the user file
mbed_official 340:28d1f895c6fe 304 */
mbed_official 340:28d1f895c6fe 305 }
mbed_official 340:28d1f895c6fe 306
mbed_official 340:28d1f895c6fe 307 /**
mbed_official 340:28d1f895c6fe 308 * @brief DeInitializes the DAC MSP.
mbed_official 340:28d1f895c6fe 309 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 310 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 311 * @retval None
mbed_official 340:28d1f895c6fe 312 */
mbed_official 340:28d1f895c6fe 313 __weak void HAL_DAC_MspDeInit(DAC_HandleTypeDef* hdac)
mbed_official 340:28d1f895c6fe 314 {
mbed_official 340:28d1f895c6fe 315 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 340:28d1f895c6fe 316 the HAL_DAC_MspDeInit could be implemented in the user file
mbed_official 340:28d1f895c6fe 317 */
mbed_official 340:28d1f895c6fe 318 }
mbed_official 340:28d1f895c6fe 319
mbed_official 340:28d1f895c6fe 320 /**
mbed_official 340:28d1f895c6fe 321 * @}
mbed_official 340:28d1f895c6fe 322 */
mbed_official 340:28d1f895c6fe 323
mbed_official 340:28d1f895c6fe 324 /** @defgroup DAC_Exported_Functions_Group2 IO operation functions
mbed_official 340:28d1f895c6fe 325 * @brief IO operation functions
mbed_official 340:28d1f895c6fe 326 *
mbed_official 340:28d1f895c6fe 327 @verbatim
mbed_official 340:28d1f895c6fe 328 ==============================================================================
mbed_official 340:28d1f895c6fe 329 ##### IO operation functions #####
mbed_official 340:28d1f895c6fe 330 ==============================================================================
mbed_official 340:28d1f895c6fe 331 [..] This section provides functions allowing to:
mbed_official 340:28d1f895c6fe 332 (+) Start conversion.
mbed_official 340:28d1f895c6fe 333 (+) Stop conversion.
mbed_official 340:28d1f895c6fe 334 (+) Start conversion and enable DMA transfer.
mbed_official 340:28d1f895c6fe 335 (+) Stop conversion and disable DMA transfer.
mbed_official 340:28d1f895c6fe 336 (+) Get result of conversion.
mbed_official 340:28d1f895c6fe 337
mbed_official 340:28d1f895c6fe 338 @endverbatim
mbed_official 340:28d1f895c6fe 339 * @{
mbed_official 340:28d1f895c6fe 340 */
mbed_official 340:28d1f895c6fe 341
mbed_official 340:28d1f895c6fe 342 /**
mbed_official 340:28d1f895c6fe 343 * @brief Enables DAC and starts conversion of channel.
mbed_official 340:28d1f895c6fe 344 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 345 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 346 * @param Channel: The selected DAC channel.
mbed_official 340:28d1f895c6fe 347 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 348 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 340:28d1f895c6fe 349 * @arg DAC_CHANNEL_2: DAC Channel2 selected
mbed_official 340:28d1f895c6fe 350 * @retval HAL status
mbed_official 340:28d1f895c6fe 351 */
mbed_official 340:28d1f895c6fe 352 __weak HAL_StatusTypeDef HAL_DAC_Start(DAC_HandleTypeDef* hdac, uint32_t Channel)
mbed_official 340:28d1f895c6fe 353 {
mbed_official 340:28d1f895c6fe 354 /* Note : This function is defined into this file for library reference. */
mbed_official 340:28d1f895c6fe 355 /* Function content is located into file stm32f0xx_hal_dac_ex.c */
mbed_official 340:28d1f895c6fe 356
mbed_official 340:28d1f895c6fe 357 /* Return error status as not implemented here */
mbed_official 340:28d1f895c6fe 358 return HAL_ERROR;
mbed_official 340:28d1f895c6fe 359 }
mbed_official 340:28d1f895c6fe 360
mbed_official 340:28d1f895c6fe 361 /**
mbed_official 340:28d1f895c6fe 362 * @brief Disables DAC and stop conversion of channel.
mbed_official 340:28d1f895c6fe 363 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 364 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 365 * @param Channel: The selected DAC channel.
mbed_official 340:28d1f895c6fe 366 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 367 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 340:28d1f895c6fe 368 * @arg DAC_CHANNEL_2: DAC Channel2 selected
mbed_official 340:28d1f895c6fe 369 * @retval HAL status
mbed_official 340:28d1f895c6fe 370 */
mbed_official 340:28d1f895c6fe 371 HAL_StatusTypeDef HAL_DAC_Stop(DAC_HandleTypeDef* hdac, uint32_t Channel)
mbed_official 340:28d1f895c6fe 372 {
mbed_official 340:28d1f895c6fe 373 /* Check the parameters */
mbed_official 340:28d1f895c6fe 374 assert_param(IS_DAC_CHANNEL(Channel));
mbed_official 340:28d1f895c6fe 375
mbed_official 340:28d1f895c6fe 376 /* Disable the Peripheral */
mbed_official 340:28d1f895c6fe 377 __HAL_DAC_DISABLE(hdac, Channel);
mbed_official 340:28d1f895c6fe 378
mbed_official 340:28d1f895c6fe 379 /* Change DAC state */
mbed_official 340:28d1f895c6fe 380 hdac->State = HAL_DAC_STATE_READY;
mbed_official 340:28d1f895c6fe 381
mbed_official 340:28d1f895c6fe 382 /* Return function status */
mbed_official 340:28d1f895c6fe 383 return HAL_OK;
mbed_official 340:28d1f895c6fe 384 }
mbed_official 340:28d1f895c6fe 385
mbed_official 340:28d1f895c6fe 386 /**
mbed_official 340:28d1f895c6fe 387 * @brief Enables DAC and starts conversion of channel.
mbed_official 340:28d1f895c6fe 388 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 389 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 390 * @param Channel: The selected DAC channel.
mbed_official 340:28d1f895c6fe 391 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 392 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 340:28d1f895c6fe 393 * @arg DAC_CHANNEL_2: DAC Channel2 selected
mbed_official 340:28d1f895c6fe 394 * @param pData: The destination peripheral Buffer address.
mbed_official 340:28d1f895c6fe 395 * @param Length: The length of data to be transferred from memory to DAC peripheral
mbed_official 340:28d1f895c6fe 396 * @param Alignment: Specifies the data alignment for DAC channel.
mbed_official 340:28d1f895c6fe 397 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 398 * @arg DAC_ALIGN_8B_R: 8bit right data alignment selected
mbed_official 340:28d1f895c6fe 399 * @arg DAC_ALIGN_12B_L: 12bit left data alignment selected
mbed_official 340:28d1f895c6fe 400 * @arg DAC_ALIGN_12B_R: 12bit right data alignment selected
mbed_official 340:28d1f895c6fe 401 * @retval HAL status
mbed_official 340:28d1f895c6fe 402 */
mbed_official 340:28d1f895c6fe 403 __weak 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 404 {
mbed_official 340:28d1f895c6fe 405 /* Note : This function is defined into this file for library reference. */
mbed_official 340:28d1f895c6fe 406 /* Function content is located into file stm32f0xx_hal_dac_ex.c */
mbed_official 340:28d1f895c6fe 407
mbed_official 340:28d1f895c6fe 408 /* Return error status as not implemented here */
mbed_official 340:28d1f895c6fe 409 return HAL_ERROR;
mbed_official 340:28d1f895c6fe 410 }
mbed_official 340:28d1f895c6fe 411
mbed_official 340:28d1f895c6fe 412 /**
mbed_official 340:28d1f895c6fe 413 * @brief Disables DAC and stop conversion of channel.
mbed_official 340:28d1f895c6fe 414 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 415 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 416 * @param Channel: The selected DAC channel.
mbed_official 340:28d1f895c6fe 417 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 418 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 340:28d1f895c6fe 419 * @arg DAC_CHANNEL_2: DAC Channel2 selected
mbed_official 340:28d1f895c6fe 420 * @retval HAL status
mbed_official 340:28d1f895c6fe 421 */
mbed_official 340:28d1f895c6fe 422 HAL_StatusTypeDef HAL_DAC_Stop_DMA(DAC_HandleTypeDef* hdac, uint32_t Channel)
mbed_official 340:28d1f895c6fe 423 {
mbed_official 340:28d1f895c6fe 424 HAL_StatusTypeDef status = HAL_OK;
mbed_official 340:28d1f895c6fe 425
mbed_official 340:28d1f895c6fe 426 /* Check the parameters */
mbed_official 340:28d1f895c6fe 427 assert_param(IS_DAC_CHANNEL(Channel));
mbed_official 340:28d1f895c6fe 428
mbed_official 340:28d1f895c6fe 429 /* Disable the selected DAC channel DMA request */
mbed_official 340:28d1f895c6fe 430 hdac->Instance->CR &= ~(DAC_CR_DMAEN1 << Channel);
mbed_official 340:28d1f895c6fe 431
mbed_official 340:28d1f895c6fe 432 /* Disable the Peripharal */
mbed_official 340:28d1f895c6fe 433 __HAL_DAC_DISABLE(hdac, Channel);
mbed_official 340:28d1f895c6fe 434
mbed_official 340:28d1f895c6fe 435 /* Disable the DMA Channel */
mbed_official 340:28d1f895c6fe 436 /* Channel1 is used */
mbed_official 340:28d1f895c6fe 437 if (Channel == DAC_CHANNEL_1)
mbed_official 340:28d1f895c6fe 438 {
mbed_official 340:28d1f895c6fe 439 status = HAL_DMA_Abort(hdac->DMA_Handle1);
mbed_official 340:28d1f895c6fe 440 }
mbed_official 340:28d1f895c6fe 441 else /* Channel2 is used for */
mbed_official 340:28d1f895c6fe 442 {
mbed_official 340:28d1f895c6fe 443 status = HAL_DMA_Abort(hdac->DMA_Handle2);
mbed_official 340:28d1f895c6fe 444 }
mbed_official 441:d2c15dda23c1 445
mbed_official 441:d2c15dda23c1 446 /* Check if DMA Channel effectively disabled */
mbed_official 441:d2c15dda23c1 447 if (status != HAL_OK)
mbed_official 441:d2c15dda23c1 448 {
mbed_official 441:d2c15dda23c1 449 /* Update DAC state machine to error */
mbed_official 441:d2c15dda23c1 450 hdac->State = HAL_DAC_STATE_ERROR;
mbed_official 441:d2c15dda23c1 451 }
mbed_official 441:d2c15dda23c1 452 else
mbed_official 441:d2c15dda23c1 453 {
mbed_official 340:28d1f895c6fe 454 /* Change DAC state */
mbed_official 340:28d1f895c6fe 455 hdac->State = HAL_DAC_STATE_READY;
mbed_official 441:d2c15dda23c1 456 }
mbed_official 441:d2c15dda23c1 457
mbed_official 340:28d1f895c6fe 458 /* Return function status */
mbed_official 340:28d1f895c6fe 459 return status;
mbed_official 340:28d1f895c6fe 460 }
mbed_official 340:28d1f895c6fe 461
mbed_official 340:28d1f895c6fe 462 /**
mbed_official 340:28d1f895c6fe 463 * @brief Conversion complete callback in non blocking mode for Channel1
mbed_official 340:28d1f895c6fe 464 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 465 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 466 * @retval None
mbed_official 340:28d1f895c6fe 467 */
mbed_official 340:28d1f895c6fe 468 __weak void HAL_DAC_ConvCpltCallbackCh1(DAC_HandleTypeDef* hdac)
mbed_official 340:28d1f895c6fe 469 {
mbed_official 340:28d1f895c6fe 470 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 340:28d1f895c6fe 471 the HAL_DAC_ConvCpltCallback could be implemented in the user file
mbed_official 340:28d1f895c6fe 472 */
mbed_official 340:28d1f895c6fe 473 }
mbed_official 340:28d1f895c6fe 474
mbed_official 340:28d1f895c6fe 475 /**
mbed_official 340:28d1f895c6fe 476 * @brief Conversion half DMA transfer callback in non blocking mode for Channel1
mbed_official 340:28d1f895c6fe 477 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 478 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 479 * @retval None
mbed_official 340:28d1f895c6fe 480 */
mbed_official 340:28d1f895c6fe 481 __weak void HAL_DAC_ConvHalfCpltCallbackCh1(DAC_HandleTypeDef* hdac)
mbed_official 340:28d1f895c6fe 482 {
mbed_official 340:28d1f895c6fe 483 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 340:28d1f895c6fe 484 the HAL_DAC_ConvHalfCpltCallbackCh1 could be implemented in the user file
mbed_official 340:28d1f895c6fe 485 */
mbed_official 340:28d1f895c6fe 486 }
mbed_official 340:28d1f895c6fe 487
mbed_official 340:28d1f895c6fe 488 /**
mbed_official 340:28d1f895c6fe 489 * @brief Error DAC callback for Channel1.
mbed_official 340:28d1f895c6fe 490 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 491 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 492 * @retval None
mbed_official 340:28d1f895c6fe 493 */
mbed_official 340:28d1f895c6fe 494 __weak void HAL_DAC_ErrorCallbackCh1(DAC_HandleTypeDef *hdac)
mbed_official 340:28d1f895c6fe 495 {
mbed_official 340:28d1f895c6fe 496 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 340:28d1f895c6fe 497 the HAL_DAC_ErrorCallback could be implemented in the user file
mbed_official 340:28d1f895c6fe 498 */
mbed_official 340:28d1f895c6fe 499 }
mbed_official 340:28d1f895c6fe 500
mbed_official 340:28d1f895c6fe 501 /**
mbed_official 340:28d1f895c6fe 502 * @brief DMA underrun DAC callback for channel1.
mbed_official 340:28d1f895c6fe 503 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 504 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 505 * @retval None
mbed_official 340:28d1f895c6fe 506 */
mbed_official 340:28d1f895c6fe 507 __weak void HAL_DAC_DMAUnderrunCallbackCh1(DAC_HandleTypeDef *hdac)
mbed_official 340:28d1f895c6fe 508 {
mbed_official 340:28d1f895c6fe 509 /* NOTE : This function Should not be modified, when the callback is needed,
mbed_official 340:28d1f895c6fe 510 the HAL_DAC_DMAUnderrunCallbackCh1 could be implemented in the user file
mbed_official 340:28d1f895c6fe 511 */
mbed_official 340:28d1f895c6fe 512 }
mbed_official 340:28d1f895c6fe 513
mbed_official 340:28d1f895c6fe 514 /**
mbed_official 340:28d1f895c6fe 515 * @}
mbed_official 340:28d1f895c6fe 516 */
mbed_official 340:28d1f895c6fe 517
mbed_official 340:28d1f895c6fe 518 /** @defgroup DAC_Exported_Functions_Group3 Peripheral Control functions
mbed_official 340:28d1f895c6fe 519 * @brief Peripheral Control functions
mbed_official 340:28d1f895c6fe 520 *
mbed_official 340:28d1f895c6fe 521 @verbatim
mbed_official 340:28d1f895c6fe 522 ==============================================================================
mbed_official 340:28d1f895c6fe 523 ##### Peripheral Control functions #####
mbed_official 340:28d1f895c6fe 524 ==============================================================================
mbed_official 340:28d1f895c6fe 525 [..] This section provides functions allowing to:
mbed_official 340:28d1f895c6fe 526 (+) Configure channels.
mbed_official 340:28d1f895c6fe 527 (+) Set the specified data holding register value for DAC channel.
mbed_official 340:28d1f895c6fe 528
mbed_official 340:28d1f895c6fe 529 @endverbatim
mbed_official 340:28d1f895c6fe 530 * @{
mbed_official 340:28d1f895c6fe 531 */
mbed_official 340:28d1f895c6fe 532
mbed_official 340:28d1f895c6fe 533 /**
mbed_official 340:28d1f895c6fe 534 * @brief Configures the selected DAC channel.
mbed_official 340:28d1f895c6fe 535 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 536 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 537 * @param sConfig: DAC configuration structure.
mbed_official 340:28d1f895c6fe 538 * @param Channel: The selected DAC channel.
mbed_official 340:28d1f895c6fe 539 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 540 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 340:28d1f895c6fe 541 * @arg DAC_CHANNEL_2: DAC Channel2 selected
mbed_official 340:28d1f895c6fe 542 * @retval HAL status
mbed_official 340:28d1f895c6fe 543 */
mbed_official 340:28d1f895c6fe 544 __weak HAL_StatusTypeDef HAL_DAC_ConfigChannel(DAC_HandleTypeDef* hdac, DAC_ChannelConfTypeDef* sConfig, uint32_t Channel)
mbed_official 340:28d1f895c6fe 545 {
mbed_official 340:28d1f895c6fe 546 /* Note : This function is defined into this file for library reference. */
mbed_official 340:28d1f895c6fe 547 /* Function content is located into file stm32f0xx_hal_dac_ex.c */
mbed_official 340:28d1f895c6fe 548
mbed_official 340:28d1f895c6fe 549 /* Return error status as not implemented here */
mbed_official 340:28d1f895c6fe 550 return HAL_ERROR;
mbed_official 340:28d1f895c6fe 551 }
mbed_official 340:28d1f895c6fe 552
mbed_official 340:28d1f895c6fe 553 /**
mbed_official 340:28d1f895c6fe 554 * @brief Set the specified data holding register value for DAC channel.
mbed_official 340:28d1f895c6fe 555 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 556 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 557 * @param Channel: The selected DAC channel.
mbed_official 340:28d1f895c6fe 558 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 559 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 340:28d1f895c6fe 560 * @arg DAC_CHANNEL_2: DAC Channel2 selected
mbed_official 340:28d1f895c6fe 561 * @param Alignment: Specifies the data alignment.
mbed_official 340:28d1f895c6fe 562 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 563 * @arg DAC_ALIGN_8B_R: 8bit right data alignment selected
mbed_official 340:28d1f895c6fe 564 * @arg DAC_ALIGN_12B_L: 12bit left data alignment selected
mbed_official 340:28d1f895c6fe 565 * @arg DAC_ALIGN_12B_R: 12bit right data alignment selected
mbed_official 340:28d1f895c6fe 566 * @param Data: Data to be loaded in the selected data holding register.
mbed_official 340:28d1f895c6fe 567 * @retval HAL status
mbed_official 340:28d1f895c6fe 568 */
mbed_official 340:28d1f895c6fe 569 HAL_StatusTypeDef HAL_DAC_SetValue(DAC_HandleTypeDef* hdac, uint32_t Channel, uint32_t Alignment, uint32_t Data)
mbed_official 340:28d1f895c6fe 570 {
mbed_official 340:28d1f895c6fe 571 __IO uint32_t tmp = 0;
mbed_official 340:28d1f895c6fe 572
mbed_official 340:28d1f895c6fe 573 /* Check the parameters */
mbed_official 340:28d1f895c6fe 574 assert_param(IS_DAC_CHANNEL(Channel));
mbed_official 340:28d1f895c6fe 575 assert_param(IS_DAC_ALIGN(Alignment));
mbed_official 340:28d1f895c6fe 576 assert_param(IS_DAC_DATA(Data));
mbed_official 340:28d1f895c6fe 577
mbed_official 340:28d1f895c6fe 578 tmp = (uint32_t)hdac->Instance;
mbed_official 340:28d1f895c6fe 579 if(Channel == DAC_CHANNEL_1)
mbed_official 340:28d1f895c6fe 580 {
mbed_official 340:28d1f895c6fe 581 tmp += __HAL_DHR12R1_ALIGNEMENT(Alignment);
mbed_official 340:28d1f895c6fe 582 }
mbed_official 340:28d1f895c6fe 583 else
mbed_official 340:28d1f895c6fe 584 {
mbed_official 340:28d1f895c6fe 585 tmp += __HAL_DHR12R2_ALIGNEMENT(Alignment);
mbed_official 340:28d1f895c6fe 586 }
mbed_official 340:28d1f895c6fe 587
mbed_official 340:28d1f895c6fe 588 /* Set the DAC channel1 selected data holding register */
mbed_official 340:28d1f895c6fe 589 *(__IO uint32_t *) tmp = Data;
mbed_official 340:28d1f895c6fe 590
mbed_official 340:28d1f895c6fe 591 /* Return function status */
mbed_official 340:28d1f895c6fe 592 return HAL_OK;
mbed_official 340:28d1f895c6fe 593 }
mbed_official 340:28d1f895c6fe 594
mbed_official 340:28d1f895c6fe 595 /**
mbed_official 340:28d1f895c6fe 596 * @brief Returns the last data output value of the selected DAC channel.
mbed_official 340:28d1f895c6fe 597 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 598 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 599 * @param Channel: The selected DAC channel.
mbed_official 340:28d1f895c6fe 600 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 601 * @arg DAC_CHANNEL_1: DAC Channel1 selected
mbed_official 340:28d1f895c6fe 602 * @arg DAC_CHANNEL_2: DAC Channel2 selected
mbed_official 340:28d1f895c6fe 603 * @retval The selected DAC channel data output value.
mbed_official 340:28d1f895c6fe 604 */
mbed_official 340:28d1f895c6fe 605 __weak uint32_t HAL_DAC_GetValue(DAC_HandleTypeDef* hdac, uint32_t Channel)
mbed_official 340:28d1f895c6fe 606 {
mbed_official 340:28d1f895c6fe 607 /* Note : This function is defined into this file for library reference. */
mbed_official 340:28d1f895c6fe 608 /* Function content is located into file stm32f0xx_hal_dac_ex.c */
mbed_official 340:28d1f895c6fe 609
mbed_official 340:28d1f895c6fe 610 /* Return error status as not implemented here */
mbed_official 340:28d1f895c6fe 611 return HAL_ERROR;
mbed_official 340:28d1f895c6fe 612 }
mbed_official 340:28d1f895c6fe 613
mbed_official 340:28d1f895c6fe 614 /**
mbed_official 340:28d1f895c6fe 615 * @}
mbed_official 340:28d1f895c6fe 616 */
mbed_official 340:28d1f895c6fe 617
mbed_official 340:28d1f895c6fe 618 /** @defgroup DAC_Exported_Functions_Group4 Peripheral State and Errors functions
mbed_official 340:28d1f895c6fe 619 * @brief Peripheral State and Errors functions
mbed_official 340:28d1f895c6fe 620 *
mbed_official 340:28d1f895c6fe 621 @verbatim
mbed_official 340:28d1f895c6fe 622 ==============================================================================
mbed_official 340:28d1f895c6fe 623 ##### Peripheral State and Errors functions #####
mbed_official 340:28d1f895c6fe 624 ==============================================================================
mbed_official 340:28d1f895c6fe 625 [..]
mbed_official 340:28d1f895c6fe 626 This subsection provides functions allowing to
mbed_official 340:28d1f895c6fe 627 (+) Check the DAC state.
mbed_official 340:28d1f895c6fe 628 (+) Check the DAC Errors.
mbed_official 340:28d1f895c6fe 629
mbed_official 340:28d1f895c6fe 630 @endverbatim
mbed_official 340:28d1f895c6fe 631 * @{
mbed_official 340:28d1f895c6fe 632 */
mbed_official 340:28d1f895c6fe 633
mbed_official 340:28d1f895c6fe 634 /**
mbed_official 340:28d1f895c6fe 635 * @brief return the DAC state
mbed_official 340:28d1f895c6fe 636 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 637 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 638 * @retval HAL state
mbed_official 340:28d1f895c6fe 639 */
mbed_official 340:28d1f895c6fe 640 HAL_DAC_StateTypeDef HAL_DAC_GetState(DAC_HandleTypeDef* hdac)
mbed_official 340:28d1f895c6fe 641 {
mbed_official 340:28d1f895c6fe 642 /* Return DAC state */
mbed_official 340:28d1f895c6fe 643 return hdac->State;
mbed_official 340:28d1f895c6fe 644 }
mbed_official 340:28d1f895c6fe 645
mbed_official 340:28d1f895c6fe 646
mbed_official 340:28d1f895c6fe 647 /**
mbed_official 340:28d1f895c6fe 648 * @brief Return the DAC error code
mbed_official 340:28d1f895c6fe 649 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 650 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 651 * @retval DAC Error Code
mbed_official 340:28d1f895c6fe 652 */
mbed_official 340:28d1f895c6fe 653 uint32_t HAL_DAC_GetError(DAC_HandleTypeDef *hdac)
mbed_official 340:28d1f895c6fe 654 {
mbed_official 340:28d1f895c6fe 655 return hdac->ErrorCode;
mbed_official 340:28d1f895c6fe 656 }
mbed_official 340:28d1f895c6fe 657
mbed_official 340:28d1f895c6fe 658 /**
mbed_official 340:28d1f895c6fe 659 * @brief Handles DAC interrupt request
mbed_official 340:28d1f895c6fe 660 * @param hdac: pointer to a DAC_HandleTypeDef structure that contains
mbed_official 340:28d1f895c6fe 661 * the configuration information for the specified DAC.
mbed_official 340:28d1f895c6fe 662 * @retval None
mbed_official 340:28d1f895c6fe 663 */
mbed_official 340:28d1f895c6fe 664 __weak void HAL_DAC_IRQHandler(DAC_HandleTypeDef* hdac)
mbed_official 340:28d1f895c6fe 665 {
mbed_official 340:28d1f895c6fe 666 /* Note : This function is defined into this file for library reference. */
mbed_official 340:28d1f895c6fe 667 /* Function content is located into file stm32f0xx_hal_dac_ex.c */
mbed_official 340:28d1f895c6fe 668 }
mbed_official 340:28d1f895c6fe 669
mbed_official 340:28d1f895c6fe 670 /**
mbed_official 340:28d1f895c6fe 671 * @}
mbed_official 340:28d1f895c6fe 672 */
mbed_official 340:28d1f895c6fe 673
mbed_official 340:28d1f895c6fe 674
mbed_official 340:28d1f895c6fe 675 /**
mbed_official 340:28d1f895c6fe 676 * @}
mbed_official 340:28d1f895c6fe 677 */
mbed_official 340:28d1f895c6fe 678
mbed_official 340:28d1f895c6fe 679 /**
mbed_official 340:28d1f895c6fe 680 * @}
mbed_official 340:28d1f895c6fe 681 */
mbed_official 340:28d1f895c6fe 682
mbed_official 340:28d1f895c6fe 683 /**
mbed_official 340:28d1f895c6fe 684 * @}
mbed_official 340:28d1f895c6fe 685 */
mbed_official 340:28d1f895c6fe 686
mbed_official 441:d2c15dda23c1 687 #endif /* STM32F051x8 || STM32F058xx || */
mbed_official 441:d2c15dda23c1 688 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 441:d2c15dda23c1 689 /* STM32F091xC || STM32F098xx */
mbed_official 441:d2c15dda23c1 690
mbed_official 441:d2c15dda23c1 691 #endif /* HAL_DAC_MODULE_ENABLED */
mbed_official 441:d2c15dda23c1 692
mbed_official 340:28d1f895c6fe 693 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/