mbed library sources

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Thu Oct 09 08:15:07 2014 +0100
Revision:
340:28d1f895c6fe
Synchronized with git revision b5a4c8e80393336b2656fb29ab46d405d3068602

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

HAL: nrf51822 - Few fixes for PWM and Serial

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