mbed library sources

Dependents:   Marvino mbot

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Mon Sep 28 14:00:11 2015 +0100
Revision:
632:7687fb9c4f91
Parent:
385:be64abf45658
Child:
634:ac7d6880524d
Synchronized with git revision f7ce4ed029cc611121464252ff28d5e8beb895b0

Full URL: https://github.com/mbedmicro/mbed/commit/f7ce4ed029cc611121464252ff28d5e8beb895b0/

NUCLEO_F303K8 - add support of the STM32F303K8

Who changed what in which revision?

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