fix LPC812 PWM

Dependents:   IR_LED_Send

Fork of mbed-dev by mbed official

Committer:
mbed_official
Date:
Tue Apr 19 11:15:15 2016 +0100
Revision:
113:b3775bf36a83
Parent:
0:9b334a45a8ff
Synchronized with git revision 896981126b34b6d9441e3eea77881c67a1ae3dbd

Full URL: https://github.com/mbedmicro/mbed/commit/896981126b34b6d9441e3eea77881c67a1ae3dbd/

Exporter tool addition for e2 studio

Who changed what in which revision?

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