229#ifdef HAL_DAC_MODULE_ENABLED
283#if (USE_HAL_DAC_REGISTER_CALLBACKS == 1)
289#if defined(DAC_CHANNEL2_SUPPORT)
290 hdac->ConvCpltCallbackCh2 = HAL_DACEx_ConvCpltCallbackCh2;
291 hdac->ConvHalfCpltCallbackCh2 = HAL_DACEx_ConvHalfCpltCallbackCh2;
292 hdac->ErrorCallbackCh2 = HAL_DACEx_ErrorCallbackCh2;
293 hdac->DMAUnderrunCallbackCh2 = HAL_DACEx_DMAUnderrunCallbackCh2;
295 if (hdac->MspInitCallback == NULL)
304#if (USE_HAL_DAC_REGISTER_CALLBACKS == 1)
306 hdac->MspInitCallback(hdac);
346#if (USE_HAL_DAC_REGISTER_CALLBACKS == 1)
347 if (hdac->MspDeInitCallback == NULL)
352 hdac->MspDeInitCallback(hdac);
461 SET_BIT(hdac->
Instance->SWTRIGR, DAC_SWTRIGR_SWTRIG1);
464#if defined(DAC_CHANNEL2_SUPPORT)
471 SET_BIT(hdac->
Instance->SWTRIGR, DAC_SWTRIGR_SWTRIG2);
568 SET_BIT(hdac->
Instance->CR, DAC_CR_DMAEN1);
575 tmpreg = (uint32_t)&hdac->
Instance->DHR12R1;
579 tmpreg = (uint32_t)&hdac->
Instance->DHR12L1;
583 tmpreg = (uint32_t)&hdac->
Instance->DHR8R1;
587#if defined(DAC_CHANNEL2_SUPPORT)
600 SET_BIT(hdac->
Instance->CR, DAC_CR_DMAEN2);
607 tmpreg = (uint32_t)&hdac->
Instance->DHR12R2;
611 tmpreg = (uint32_t)&hdac->
Instance->DHR12L2;
615 tmpreg = (uint32_t)&hdac->
Instance->DHR8R2;
628#if defined(DAC_CHANNEL2_SUPPORT)
678 hdac->
Instance->CR &= ~(DAC_CR_DMAEN1 << (Channel & 0x10UL));
694#if defined(DAC_CHANNEL2_SUPPORT)
722 uint32_t itsource = hdac->
Instance->CR;
723 uint32_t itflag = hdac->
Instance->SR;
743#if (USE_HAL_DAC_REGISTER_CALLBACKS == 1)
744 hdac->DMAUnderrunCallbackCh1(hdac);
751#if defined(DAC_CHANNEL2_SUPPORT)
752 if ((itsource & DAC_IT_DMAUDR2) == DAC_IT_DMAUDR2)
755 if ((itflag & DAC_FLAG_DMAUDR2) == DAC_FLAG_DMAUDR2)
761 SET_BIT(hdac->
ErrorCode, HAL_DAC_ERROR_DMAUNDERRUNCH2);
770#if (USE_HAL_DAC_REGISTER_CALLBACKS == 1)
771 hdac->DMAUnderrunCallbackCh2(hdac);
773 HAL_DACEx_DMAUnderrunCallbackCh2(hdac);
798 __IO uint32_t tmp = 0UL;
816#if defined(DAC_CHANNEL2_SUPPORT)
819 tmp += DAC_DHR12R2_ALIGNMENT(Alignment);
824 *(__IO uint32_t *) tmp = Data;
937#if defined(DAC_CHANNEL2_SUPPORT)
966 if ((hdac == NULL) || (sConfig == NULL))
985 tmpreg1 &= ~(((uint32_t)(DAC_CR_MAMP1 | DAC_CR_WAVE1 | DAC_CR_TSEL1 | DAC_CR_TEN1 | DAC_CR_BOFF1))
986 << (Channel & 0x10UL));
992 tmpreg1 |= tmpreg2 << (Channel & 0x10UL);
996 CLEAR_BIT(hdac->
Instance->CR, (DAC_CR_WAVE1 << (Channel & 0x10UL)));
1067#if (USE_HAL_DAC_REGISTER_CALLBACKS == 1)
1092 pDAC_CallbackTypeDef pCallback)
1102 if (pCallback == NULL)
1105 hdac->
ErrorCode |= HAL_DAC_ERROR_INVALID_CALLBACK;
1113 case HAL_DAC_CH1_COMPLETE_CB_ID :
1114 hdac->ConvCpltCallbackCh1 = pCallback;
1116 case HAL_DAC_CH1_HALF_COMPLETE_CB_ID :
1117 hdac->ConvHalfCpltCallbackCh1 = pCallback;
1119 case HAL_DAC_CH1_ERROR_ID :
1120 hdac->ErrorCallbackCh1 = pCallback;
1122 case HAL_DAC_CH1_UNDERRUN_CB_ID :
1123 hdac->DMAUnderrunCallbackCh1 = pCallback;
1125#if defined(DAC_CHANNEL2_SUPPORT)
1126 case HAL_DAC_CH2_COMPLETE_CB_ID :
1127 hdac->ConvCpltCallbackCh2 = pCallback;
1129 case HAL_DAC_CH2_HALF_COMPLETE_CB_ID :
1130 hdac->ConvHalfCpltCallbackCh2 = pCallback;
1132 case HAL_DAC_CH2_ERROR_ID :
1133 hdac->ErrorCallbackCh2 = pCallback;
1135 case HAL_DAC_CH2_UNDERRUN_CB_ID :
1136 hdac->DMAUnderrunCallbackCh2 = pCallback;
1139 case HAL_DAC_MSPINIT_CB_ID :
1140 hdac->MspInitCallback = pCallback;
1142 case HAL_DAC_MSPDEINIT_CB_ID :
1143 hdac->MspDeInitCallback = pCallback;
1147 hdac->
ErrorCode |= HAL_DAC_ERROR_INVALID_CALLBACK;
1157 case HAL_DAC_MSPINIT_CB_ID :
1158 hdac->MspInitCallback = pCallback;
1160 case HAL_DAC_MSPDEINIT_CB_ID :
1161 hdac->MspDeInitCallback = pCallback;
1165 hdac->
ErrorCode |= HAL_DAC_ERROR_INVALID_CALLBACK;
1174 hdac->
ErrorCode |= HAL_DAC_ERROR_INVALID_CALLBACK;
1217 case HAL_DAC_CH1_COMPLETE_CB_ID :
1220 case HAL_DAC_CH1_HALF_COMPLETE_CB_ID :
1223 case HAL_DAC_CH1_ERROR_ID :
1226 case HAL_DAC_CH1_UNDERRUN_CB_ID :
1229#if defined(DAC_CHANNEL2_SUPPORT)
1230 case HAL_DAC_CH2_COMPLETE_CB_ID :
1231 hdac->ConvCpltCallbackCh2 = HAL_DACEx_ConvCpltCallbackCh2;
1233 case HAL_DAC_CH2_HALF_COMPLETE_CB_ID :
1234 hdac->ConvHalfCpltCallbackCh2 = HAL_DACEx_ConvHalfCpltCallbackCh2;
1236 case HAL_DAC_CH2_ERROR_ID :
1237 hdac->ErrorCallbackCh2 = HAL_DACEx_ErrorCallbackCh2;
1239 case HAL_DAC_CH2_UNDERRUN_CB_ID :
1240 hdac->DMAUnderrunCallbackCh2 = HAL_DACEx_DMAUnderrunCallbackCh2;
1243 case HAL_DAC_MSPINIT_CB_ID :
1246 case HAL_DAC_MSPDEINIT_CB_ID :
1249 case HAL_DAC_ALL_CB_ID :
1254#if defined(DAC_CHANNEL2_SUPPORT)
1255 hdac->ConvCpltCallbackCh2 = HAL_DACEx_ConvCpltCallbackCh2;
1256 hdac->ConvHalfCpltCallbackCh2 = HAL_DACEx_ConvHalfCpltCallbackCh2;
1257 hdac->ErrorCallbackCh2 = HAL_DACEx_ErrorCallbackCh2;
1258 hdac->DMAUnderrunCallbackCh2 = HAL_DACEx_DMAUnderrunCallbackCh2;
1265 hdac->
ErrorCode |= HAL_DAC_ERROR_INVALID_CALLBACK;
1275 case HAL_DAC_MSPINIT_CB_ID :
1278 case HAL_DAC_MSPDEINIT_CB_ID :
1283 hdac->
ErrorCode |= HAL_DAC_ERROR_INVALID_CALLBACK;
1292 hdac->
ErrorCode |= HAL_DAC_ERROR_INVALID_CALLBACK;
1323#if (USE_HAL_DAC_REGISTER_CALLBACKS == 1)
1324 hdac->ConvCpltCallbackCh1(hdac);
1342#if (USE_HAL_DAC_REGISTER_CALLBACKS == 1)
1343 hdac->ConvHalfCpltCallbackCh1(hdac);
1362#if (USE_HAL_DAC_REGISTER_CALLBACKS == 1)
1363 hdac->ErrorCallbackCh1(hdac);
#define IS_DAC_TRIGGER(TRIGGER)
#define HAL_DAC_ERROR_DMAUNDERRUNCH1
#define HAL_DAC_ERROR_DMA
#define HAL_DAC_ERROR_NONE
void HAL_DAC_MspInit(DAC_HandleTypeDef *hdac)
Initialize the DAC MSP.
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_DeInit(DAC_HandleTypeDef *hdac)
Deinitialize the DAC peripheral registers to their default reset values.
void HAL_DAC_MspDeInit(DAC_HandleTypeDef *hdac)
DeInitialize the DAC MSP.
HAL_StatusTypeDef HAL_DAC_Stop(DAC_HandleTypeDef *hdac, uint32_t Channel)
Disables DAC and stop conversion of channel.
HAL_StatusTypeDef HAL_DAC_Start(DAC_HandleTypeDef *hdac, uint32_t Channel)
Enables DAC and starts conversion of channel.
void HAL_DAC_ConvHalfCpltCallbackCh1(DAC_HandleTypeDef *hdac)
Conversion half DMA transfer callback in non-blocking mode for Channel1.
HAL_StatusTypeDef HAL_DAC_Stop_DMA(DAC_HandleTypeDef *hdac, uint32_t Channel)
Disables DAC and stop conversion of channel.
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_Start_DMA(DAC_HandleTypeDef *hdac, uint32_t Channel, const uint32_t *pData, uint32_t Length, uint32_t Alignment)
Enables DAC and starts conversion of channel.
void HAL_DAC_ErrorCallbackCh1(DAC_HandleTypeDef *hdac)
Error DAC callback for Channel1.
void HAL_DAC_IRQHandler(DAC_HandleTypeDef *hdac)
Handles DAC interrupt request This function uses the interruption of DMA underrun.
void HAL_DAC_ConvCpltCallbackCh1(DAC_HandleTypeDef *hdac)
Conversion complete callback in non-blocking mode for Channel1.
void HAL_DAC_DMAUnderrunCallbackCh1(DAC_HandleTypeDef *hdac)
DMA underrun DAC callback for channel1.
uint32_t HAL_DAC_GetValue(const DAC_HandleTypeDef *hdac, uint32_t Channel)
Returns the last data output value of the selected DAC channel.
HAL_StatusTypeDef HAL_DAC_ConfigChannel(DAC_HandleTypeDef *hdac, const DAC_ChannelConfTypeDef *sConfig, uint32_t Channel)
Configures the selected DAC channel.
HAL_DAC_StateTypeDef HAL_DAC_GetState(const DAC_HandleTypeDef *hdac)
return the DAC handle state
uint32_t HAL_DAC_GetError(const DAC_HandleTypeDef *hdac)
Return the DAC error code.
#define __HAL_DAC_ENABLE(__HANDLE__, __DAC_Channel__)
Enable the DAC channel.
#define __HAL_DAC_DISABLE_IT(__HANDLE__, __INTERRUPT__)
Disable the DAC interrupt.
#define __HAL_DAC_DISABLE(__HANDLE__, __DAC_Channel__)
Disable the DAC channel.
#define __HAL_DAC_CLEAR_FLAG(__HANDLE__, __FLAG__)
Clear the DAC's flag.
#define DAC_DHR12R1_ALIGNMENT(__ALIGNMENT__)
Set DHR12R1 alignment.
#define __HAL_DAC_ENABLE_IT(__HANDLE__, __INTERRUPT__)
Enable the DAC interrupt.
HAL_DAC_StateTypeDef
HAL State structures definition.
void DAC_DMAConvCpltCh1(DMA_HandleTypeDef *hdma)
DMA conversion complete callback.
void DAC_DMAHalfConvCpltCh1(DMA_HandleTypeDef *hdma)
DMA half transfer complete callback.
void DAC_DMAErrorCh1(DMA_HandleTypeDef *hdma)
DMA error callback.
#define IS_DAC_ALIGN(ALIGN)
#define IS_DAC_DATA(DATA)
#define IS_DAC_OUTPUT_BUFFER_STATE(STATE)
#define IS_DAC_CHANNEL(CHANNEL)
#define DAC_TRIGGER_SOFTWARE
HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer.
HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
Start the DMA Transfer with interrupt enabled.
#define assert_param(expr)
This file contains all the functions prototypes for the HAL module driver.
HAL_StatusTypeDef
HAL Status structures definition
#define __HAL_UNLOCK(__HANDLE__)
#define __HAL_LOCK(__HANDLE__)
DAC Configuration regular Channel structure definition.
uint32_t DAC_OutputBuffer
DAC handle Structure definition.
__IO HAL_DAC_StateTypeDef State
DMA_HandleTypeDef * DMA_Handle2
DMA_HandleTypeDef * DMA_Handle1
DMA handle Structure definition.
void(* XferCpltCallback)(struct __DMA_HandleTypeDef *hdma)
void(* XferErrorCallback)(struct __DMA_HandleTypeDef *hdma)
void(* XferHalfCpltCallback)(struct __DMA_HandleTypeDef *hdma)