21 #ifndef STM32L4xx_HAL_DAC_H 22 #define STM32L4xx_HAL_DAC_H 52 HAL_DAC_STATE_RESET = 0x00U,
53 HAL_DAC_STATE_READY = 0x01U,
54 HAL_DAC_STATE_BUSY = 0x02U,
55 HAL_DAC_STATE_TIMEOUT = 0x03U,
56 HAL_DAC_STATE_ERROR = 0x04U
58 } HAL_DAC_StateTypeDef;
63 #if (USE_HAL_DAC_REGISTER_CALLBACKS == 1) 64 typedef struct __DAC_HandleTypeDef
71 __IO HAL_DAC_StateTypeDef
State;
79 __IO uint32_t ErrorCode;
81 #if (USE_HAL_DAC_REGISTER_CALLBACKS == 1) 82 void (* ConvCpltCallbackCh1) (
struct __DAC_HandleTypeDef *hdac);
83 void (* ConvHalfCpltCallbackCh1) (
struct __DAC_HandleTypeDef *hdac);
84 void (* ErrorCallbackCh1) (
struct __DAC_HandleTypeDef *hdac);
85 void (* DMAUnderrunCallbackCh1) (
struct __DAC_HandleTypeDef *hdac);
86 void (* ConvCpltCallbackCh2) (
struct __DAC_HandleTypeDef *hdac);
87 void (* ConvHalfCpltCallbackCh2) (
struct __DAC_HandleTypeDef *hdac);
88 void (* ErrorCallbackCh2) (
struct __DAC_HandleTypeDef *hdac);
89 void (* DMAUnderrunCallbackCh2) (
struct __DAC_HandleTypeDef *hdac);
91 void (* MspInitCallback) (
struct __DAC_HandleTypeDef *hdac);
92 void (* MspDeInitCallback ) (
struct __DAC_HandleTypeDef *hdac);
120 #if defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined(STM32L4S9xx) 149 #if (USE_HAL_DAC_REGISTER_CALLBACKS == 1) 187 #define HAL_DAC_ERROR_NONE 0x00U 188 #define HAL_DAC_ERROR_DMAUNDERRUNCH1 0x01U 189 #define HAL_DAC_ERROR_DMAUNDERRUNCH2 0x02U 190 #define HAL_DAC_ERROR_DMA 0x04U 191 #define HAL_DAC_ERROR_TIMEOUT 0x08U 192 #if (USE_HAL_DAC_REGISTER_CALLBACKS == 1) 193 #define HAL_DAC_ERROR_INVALID_CALLBACK 0x10U 204 #if defined (STM32L431xx) || defined (STM32L432xx) || defined (STM32L433xx) || defined (STM32L442xx) || defined (STM32L443xx) 205 #define DAC_TRIGGER_NONE 0x00000000U 207 #define DAC_TRIGGER_T2_TRGO (DAC_CR_TSEL1_2 | DAC_CR_TEN1) 208 #define DAC_TRIGGER_T6_TRGO ( DAC_CR_TEN1) 209 #define DAC_TRIGGER_T7_TRGO ( DAC_CR_TSEL1_1 | DAC_CR_TEN1) 210 #define DAC_TRIGGER_EXT_IT9 (DAC_CR_TSEL1_2 | DAC_CR_TSEL1_1 | DAC_CR_TEN1) 211 #define DAC_TRIGGER_SOFTWARE ( DAC_CR_TSEL1 | DAC_CR_TEN1) 214 #if defined (STM32L451xx) || defined (STM32L452xx) || defined (STM32L462xx) 215 #define DAC_TRIGGER_NONE 0x00000000U 217 #define DAC_TRIGGER_T2_TRGO (DAC_CR_TSEL1_2 | DAC_CR_TEN1) 218 #define DAC_TRIGGER_T6_TRGO ( DAC_CR_TEN1) 219 #define DAC_TRIGGER_EXT_IT9 (DAC_CR_TSEL1_2 | DAC_CR_TSEL1_1 | DAC_CR_TEN1) 220 #define DAC_TRIGGER_SOFTWARE ( DAC_CR_TSEL1 | DAC_CR_TEN1) 223 #if defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || defined (STM32L496xx) || defined (STM32L4A6xx) 224 #define DAC_TRIGGER_NONE 0x00000000U 226 #define DAC_TRIGGER_T2_TRGO (DAC_CR_TSEL1_2 | DAC_CR_TEN1) 227 #define DAC_TRIGGER_T4_TRGO (DAC_CR_TSEL1_2 | DAC_CR_TSEL1_0 | DAC_CR_TEN1) 228 #define DAC_TRIGGER_T5_TRGO ( DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0 | DAC_CR_TEN1) 229 #define DAC_TRIGGER_T6_TRGO ( DAC_CR_TEN1) 230 #define DAC_TRIGGER_T7_TRGO ( DAC_CR_TSEL1_1 | DAC_CR_TEN1) 231 #define DAC_TRIGGER_T8_TRGO ( DAC_CR_TSEL1_0 | DAC_CR_TEN1) 232 #define DAC_TRIGGER_EXT_IT9 (DAC_CR_TSEL1_2 | DAC_CR_TSEL1_1 | DAC_CR_TEN1) 233 #define DAC_TRIGGER_SOFTWARE ( DAC_CR_TSEL1 | DAC_CR_TEN1) 237 #if defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined(STM32L4S9xx) 238 #define DAC_TRIGGER_NONE 0x00000000U 239 #define DAC_TRIGGER_SOFTWARE ( DAC_CR_TEN1) 240 #define DAC_TRIGGER_T1_TRGO ( DAC_CR_TSEL1_0 | DAC_CR_TEN1) 241 #define DAC_TRIGGER_T2_TRGO ( DAC_CR_TSEL1_1 | DAC_CR_TEN1) 242 #define DAC_TRIGGER_T4_TRGO ( DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0 | DAC_CR_TEN1) 243 #define DAC_TRIGGER_T5_TRGO ( DAC_CR_TSEL1_2 | DAC_CR_TEN1) 244 #define DAC_TRIGGER_T6_TRGO ( DAC_CR_TSEL1_2 | DAC_CR_TSEL1_0 | DAC_CR_TEN1) 245 #define DAC_TRIGGER_T7_TRGO ( DAC_CR_TSEL1_2 | DAC_CR_TSEL1_1 | DAC_CR_TEN1) 246 #define DAC_TRIGGER_T8_TRGO ( DAC_CR_TSEL1_2 | DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0 | DAC_CR_TEN1) 247 #define DAC_TRIGGER_T15_TRGO (DAC_CR_TSEL1_3 | DAC_CR_TEN1) 248 #define DAC_TRIGGER_LPTIM1_OUT (DAC_CR_TSEL1_3 | DAC_CR_TSEL1_1 | DAC_CR_TSEL1_0 | DAC_CR_TEN1) 249 #define DAC_TRIGGER_LPTIM2_OUT (DAC_CR_TSEL1_3 | DAC_CR_TSEL1_2 | DAC_CR_TEN1) 250 #define DAC_TRIGGER_EXT_IT9 (DAC_CR_TSEL1_3 | DAC_CR_TSEL1_2 | DAC_CR_TSEL1_0 | DAC_CR_TEN1) 262 #define DAC_OUTPUTBUFFER_ENABLE 0x00000000U 263 #define DAC_OUTPUTBUFFER_DISABLE (DAC_MCR_MODE1_1) 272 #define DAC_CHANNEL_1 0x00000000U 273 #if defined (STM32L431xx) || defined (STM32L432xx) || defined (STM32L433xx) || defined (STM32L442xx) || defined (STM32L443xx) || \ 274 defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || defined (STM32L496xx) || defined (STM32L4A6xx) || \ 275 defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined(STM32L4S9xx) 276 #define DAC_CHANNEL_2 0x00000010U 288 #define DAC_ALIGN_12B_R 0x00000000U 289 #define DAC_ALIGN_12B_L 0x00000004U 290 #define DAC_ALIGN_8B_R 0x00000008U 299 #define DAC_FLAG_DMAUDR1 (DAC_SR_DMAUDR1) 300 #define DAC_FLAG_DMAUDR2 (DAC_SR_DMAUDR2) 309 #define DAC_IT_DMAUDR1 (DAC_SR_DMAUDR1) 310 #define DAC_IT_DMAUDR2 (DAC_SR_DMAUDR2) 319 #define DAC_CHIPCONNECT_DISABLE 0x00000000U 320 #define DAC_CHIPCONNECT_ENABLE (DAC_MCR_MODE1_0) 329 #define DAC_TRIMMING_FACTORY 0x00000000U 330 #define DAC_TRIMMING_USER 0x00000001U 339 #define DAC_SAMPLEANDHOLD_DISABLE 0x00000000U 340 #define DAC_SAMPLEANDHOLD_ENABLE (DAC_MCR_MODE1_2) 345 #if defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined(STM32L4S9xx) 349 #define DAC_HIGH_FREQUENCY_INTERFACE_MODE_DISABLE 0x00000000U 350 #define DAC_HIGH_FREQUENCY_INTERFACE_MODE_ABOVE_80MHZ (DAC_CR_HFSEL) 351 #define DAC_HIGH_FREQUENCY_INTERFACE_MODE_AUTOMATIC 0x00000002U 372 #if (USE_HAL_DAC_REGISTER_CALLBACKS == 1) 373 #define __HAL_DAC_RESET_HANDLE_STATE(__HANDLE__) do { \ 374 (__HANDLE__)->State = HAL_DAC_STATE_RESET; \ 375 (__HANDLE__)->MspInitCallback = NULL; \ 376 (__HANDLE__)->MspDeInitCallback = NULL; \ 379 #define __HAL_DAC_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_DAC_STATE_RESET) 387 #define __HAL_DAC_ENABLE(__HANDLE__, __DAC_Channel__) \ 388 ((__HANDLE__)->Instance->CR |= (DAC_CR_EN1 << ((__DAC_Channel__) & 0x10UL))) 395 #define __HAL_DAC_DISABLE(__HANDLE__, __DAC_Channel__) \ 396 ((__HANDLE__)->Instance->CR &= ~(DAC_CR_EN1 << ((__DAC_Channel__) & 0x10UL))) 402 #define DAC_DHR12R1_ALIGNMENT(__ALIGNMENT__) (0x00000008U + (__ALIGNMENT__)) 408 #define DAC_DHR12R2_ALIGNMENT(__ALIGNMENT__) (0x00000014U + (__ALIGNMENT__)) 414 #define DAC_DHR12RD_ALIGNMENT(__ALIGNMENT__) (0x00000020U + (__ALIGNMENT__)) 424 #define __HAL_DAC_ENABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CR) |= (__INTERRUPT__)) 434 #define __HAL_DAC_DISABLE_IT(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CR) &= ~(__INTERRUPT__)) 444 #define __HAL_DAC_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) (((__HANDLE__)->Instance->CR & (__INTERRUPT__)) == (__INTERRUPT__)) 454 #define __HAL_DAC_GET_FLAG(__HANDLE__, __FLAG__) ((((__HANDLE__)->Instance->SR) & (__FLAG__)) == (__FLAG__)) 464 #define __HAL_DAC_CLEAR_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR) = (__FLAG__)) 475 #define IS_DAC_OUTPUT_BUFFER_STATE(STATE) (((STATE) == DAC_OUTPUTBUFFER_ENABLE) || \ 476 ((STATE) == DAC_OUTPUTBUFFER_DISABLE)) 478 #if defined (STM32L431xx) || defined (STM32L432xx) || defined (STM32L433xx) || defined (STM32L442xx) || defined (STM32L443xx) || \ 479 defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || defined (STM32L496xx) || defined (STM32L4A6xx) || \ 480 defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined(STM32L4S9xx) 481 #define IS_DAC_CHANNEL(CHANNEL) (((CHANNEL) == DAC_CHANNEL_1) || \ 482 ((CHANNEL) == DAC_CHANNEL_2)) 487 #if defined (STM32L451xx) || defined (STM32L452xx) || defined (STM32L462xx) 488 #define IS_DAC_CHANNEL(CHANNEL) ((CHANNEL) == DAC_CHANNEL_1) 491 #define IS_DAC_ALIGN(ALIGN) (((ALIGN) == DAC_ALIGN_12B_R) || \ 492 ((ALIGN) == DAC_ALIGN_12B_L) || \ 493 ((ALIGN) == DAC_ALIGN_8B_R)) 495 #define IS_DAC_DATA(DATA) ((DATA) <= 0xFFF0U) 497 #define IS_DAC_REFRESHTIME(TIME) ((TIME) <= 0x000000FFU) 544 #if (USE_HAL_DAC_REGISTER_CALLBACKS == 1) uint32_t DAC_TrimmingValue
void(* pDAC_CallbackTypeDef)(DAC_HandleTypeDef *hdac)
HAL DAC Callback pointer definition.
uint32_t DAC_HighFrequency
struct __DAC_HandleTypeDef else typedef struct endif DAC_HandleTypeDef
DAC handle Structure definition.
HAL_DAC_CallbackIDTypeDef
HAL DAC Callback ID enumeration definition.
HAL_StatusTypeDef HAL_DAC_DeInit(DAC_HandleTypeDef *hdac)
Deinitialize the DAC peripheral registers to their default reset values.
void DAC_DMAErrorCh1(DMA_HandleTypeDef *hdma)
DMA error callback.
HAL_StatusTypeDef HAL_DAC_Init(DAC_HandleTypeDef *hdac)
Initialize the DAC peripheral according to the specified parameters in the DAC_InitStruct and initial...
HAL_StatusTypeDef HAL_DAC_Start_DMA(DAC_HandleTypeDef *hdac, uint32_t Channel, uint32_t *pData, uint32_t Length, uint32_t Alignment)
Enables DAC and starts conversion of channel.
HAL_DAC_StateTypeDef HAL_DAC_GetState(DAC_HandleTypeDef *hdac)
return the DAC handle state
HAL_StatusTypeDef HAL_DAC_UnRegisterCallback(DAC_HandleTypeDef *hdac, HAL_DAC_CallbackIDTypeDef CallbackID)
Unregister a User DAC Callback DAC Callback is redirected to the weak (surcharged) predefined callbac...
DMA handle Structure definition.
DAC Configuration regular Channel structure definition.
This file contains HAL common defines, enumeration, macros and structures definitions.
uint32_t HAL_DAC_GetError(DAC_HandleTypeDef *hdac)
Return the DAC error code.
void DAC_DMAHalfConvCpltCh1(DMA_HandleTypeDef *hdma)
DMA half transfer complete callback.
void HAL_DAC_ConvHalfCpltCallbackCh1(DAC_HandleTypeDef *hdac)
Conversion half DMA transfer callback in non-blocking mode for Channel1.
void HAL_DAC_DMAUnderrunCallbackCh1(DAC_HandleTypeDef *hdac)
DMA underrun DAC callback for channel1.
HAL_StatusTypeDef HAL_DAC_RegisterCallback(DAC_HandleTypeDef *hdac, HAL_DAC_CallbackIDTypeDef CallbackID, pDAC_CallbackTypeDef pCallback)
Register a User DAC Callback To be used instead of the weak (surcharged) predefined callback...
HAL_StatusTypeDef HAL_DAC_Stop(DAC_HandleTypeDef *hdac, uint32_t Channel)
Disables DAC and stop conversion of channel.
DMA_HandleTypeDef * DMA_Handle2
uint32_t DAC_UserTrimming
void DAC_DMAConvCpltCh1(DMA_HandleTypeDef *hdma)
DMA conversion complete callback.
uint32_t DAC_OutputBuffer
Header file of DAC HAL Extended module.
HAL_StatusTypeDef HAL_DAC_SetValue(DAC_HandleTypeDef *hdac, uint32_t Channel, uint32_t Alignment, uint32_t Data)
Set the specified data holding register value for DAC channel.
HAL_StatusTypeDef HAL_DAC_Stop_DMA(DAC_HandleTypeDef *hdac, uint32_t Channel)
Disables DAC and stop conversion of channel.
DAC Configuration sample and hold Channel structure definition.
void HAL_DAC_ErrorCallbackCh1(DAC_HandleTypeDef *hdac)
Error DAC callback for Channel1.
HAL_StatusTypeDef HAL_DAC_ConfigChannel(DAC_HandleTypeDef *hdac, DAC_ChannelConfTypeDef *sConfig, uint32_t Channel)
Configures the selected DAC channel.
void HAL_DAC_ConvCpltCallbackCh1(DAC_HandleTypeDef *hdac)
Conversion complete callback in non-blocking mode for Channel1.
HAL_LockTypeDef
HAL Lock structures definition.
DMA_HandleTypeDef * DMA_Handle1
uint32_t DAC_SampleAndHold
DAC_SampleAndHoldConfTypeDef DAC_SampleAndHoldConfig
ADC handle Structure definition.
void HAL_DAC_MspDeInit(DAC_HandleTypeDef *hdac)
DeInitialize the DAC MSP.
void HAL_DAC_IRQHandler(DAC_HandleTypeDef *hdac)
Handles DAC interrupt request This function uses the interruption of DMA underrun.
uint32_t DAC_ConnectOnChipPeripheral
void HAL_DAC_MspInit(DAC_HandleTypeDef *hdac)
Initialize the DAC MSP.
__IO HAL_DAC_StateTypeDef State
HAL_StatusTypeDef HAL_DAC_Start(DAC_HandleTypeDef *hdac, uint32_t Channel)
Enables DAC and starts conversion of channel.
uint32_t HAL_DAC_GetValue(DAC_HandleTypeDef *hdac, uint32_t Channel)
Returns the last data output value of the selected DAC channel.