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:
Wed Jul 01 09:45:11 2015 +0100
Revision:
579:53297373a894
Parent:
441:d2c15dda23c1
Child:
630:825f75ca301e
Synchronized with git revision d5b4d2ab9c47edb4dc5776e7177b0c2263459081

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

Initial version of drivers for SAMR21

Who changed what in which revision?

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