mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

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

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

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

Import librarymbed

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

Committer:
mbed_official
Date:
Mon Sep 28 20:15:09 2015 +0100
Revision:
634:ac7d6880524d
Parent:
632:7687fb9c4f91
Synchronized with git revision 9b7d23d47153c298a6d24de9a415202705889d11

Full URL: https://github.com/mbedmicro/mbed/commit/9b7d23d47153c298a6d24de9a415202705889d11/

Revert "[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 634:ac7d6880524d 5 * @version V1.1.0
mbed_official 634:ac7d6880524d 6 * @date 12-Sept-2014
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 634:ac7d6880524d 174 * <h2><center>&copy; COPYRIGHT(c) 2014 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 634:ac7d6880524d 252 if(hdac == HAL_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 634:ac7d6880524d 287 if(hdac == HAL_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****/