mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

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

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

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

Import librarymbed

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

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

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

NUCLEO_F031K6 : Add new target

Who changed what in which revision?

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