fix LPC812 PWM

Dependents:   IR_LED_Send

Fork of mbed-dev by mbed official

Committer:
nameless129
Date:
Mon May 16 16:50:30 2016 +0000
Revision:
129:2e517c56bcfb
Parent:
0:9b334a45a8ff
PWM Fix:Duty 0%??H???????????????

Who changed what in which revision?

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