56 #ifdef HAL_DAC_MODULE_ENABLED 123 assert_param(IS_DAC_LFSR_UNMASK_TRIANGLE_AMPLITUDE(Amplitude));
129 hdac->State = HAL_DAC_STATE_BUSY;
132 MODIFY_REG(hdac->Instance->CR, ((DAC_CR_WAVE1) | (DAC_CR_MAMP1)) << (Channel & 0x10UL), (DAC_CR_WAVE1_1 | Amplitude) << (Channel & 0x10UL));
135 hdac->State = HAL_DAC_STATE_READY;
172 assert_param(IS_DAC_LFSR_UNMASK_TRIANGLE_AMPLITUDE(Amplitude));
178 hdac->State = HAL_DAC_STATE_BUSY;
181 MODIFY_REG(hdac->Instance->CR, ((DAC_CR_WAVE1) | (DAC_CR_MAMP1)) << (Channel & 0x10UL), (DAC_CR_WAVE1_0 | Amplitude) << (Channel & 0x10UL));
184 hdac->State = HAL_DAC_STATE_READY;
193 #if defined (STM32L431xx) || defined (STM32L432xx) || defined (STM32L433xx) || defined (STM32L442xx) || defined (STM32L443xx) || \ 194 defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || defined (STM32L496xx) || defined (STM32L4A6xx) || \ 195 defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined(STM32L4S9xx) 223 if (Alignment == DAC_ALIGN_8B_R)
225 data = ((uint32_t)Data2 << 8U) | Data1;
229 data = ((uint32_t)Data2 << 16U) | Data1;
232 tmp = (uint32_t)hdac->Instance;
233 tmp += DAC_DHR12RD_ALIGNMENT(Alignment);
236 *(__IO uint32_t *)tmp = data;
325 HAL_StatusTypeDef status =
HAL_OK;
328 uint32_t trimmingvalue;
332 uint32_t oldmodeconfiguration;
343 else if (hdac->State == HAL_DAC_STATE_BUSY)
353 oldmodeconfiguration = (hdac->Instance->MCR & (DAC_MCR_MODE1 << (Channel & 0x10UL)));
356 CLEAR_BIT((hdac->Instance->CR), (DAC_CR_EN1 << (Channel & 0x10UL)));
359 MODIFY_REG(hdac->Instance->MCR, (DAC_MCR_MODE1 << (Channel & 0x10UL)), 0U);
362 tmp = (uint32_t)hdac->Instance;
364 #
if defined (STM32L431xx) || defined (STM32L432xx) || defined (STM32L433xx) || defined (STM32L442xx) || defined (STM32L443xx) || \
365 defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || defined (STM32L496xx) || defined (STM32L4A6xx) || \
366 defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined(STM32L4S9xx)
367 if(Channel == DAC_CHANNEL_1)
369 tmp += DAC_DHR12R1_ALIGNMENT(DAC_ALIGN_12B_R);
373 tmp += DAC_DHR12R2_ALIGNMENT(DAC_ALIGN_12B_R);
378 #if defined (STM32L451xx) || defined (STM32L452xx) || defined (STM32L462xx) 379 tmp += DAC_DHR12R1_ALIGNMENT(DAC_ALIGN_12B_R);
381 *(__IO uint32_t *) tmp = 0x0800U;
385 SET_BIT((hdac->Instance->CR), (DAC_CR_CEN1 << (Channel & 0x10UL)));
394 MODIFY_REG(hdac->Instance->CCR, (DAC_CCR_OTRIM1 << (Channel & 0x10UL)), (trimmingvalue << (Channel & 0x10UL)));
400 if ((hdac->Instance->SR & (DAC_SR_CAL_FLAG1 << (Channel & 0x10UL))) == (DAC_SR_CAL_FLAG1 << (Channel & 0x10UL)))
403 trimmingvalue -= delta;
408 trimmingvalue += delta;
416 MODIFY_REG(hdac->Instance->CCR, (DAC_CCR_OTRIM1 << (Channel & 0x10UL)), (trimmingvalue << (Channel & 0x10UL)));
422 if ((hdac->Instance->SR & (DAC_SR_CAL_FLAG1 << (Channel & 0x10UL))) == 0UL)
427 MODIFY_REG(hdac->Instance->CCR, (DAC_CCR_OTRIM1 << (Channel & 0x10UL)), (trimmingvalue << (Channel & 0x10UL)));
432 CLEAR_BIT((hdac->Instance->CR), (DAC_CR_CEN1 << (Channel & 0x10UL)));
438 MODIFY_REG(hdac->Instance->MCR, (DAC_MCR_MODE1 << (Channel & 0x10UL)), oldmodeconfiguration);
461 uint32_t NewTrimmingValue)
463 HAL_StatusTypeDef status =
HAL_OK;
467 assert_param(IS_DAC_NEWTRIMMINGVALUE(NewTrimmingValue));
480 MODIFY_REG(hdac->Instance->CCR, (DAC_CCR_OTRIM1 << (Channel & 0x10UL)), (NewTrimmingValue << (Channel & 0x10UL)));
509 return ((hdac->Instance->CCR & (DAC_CCR_OTRIM1 << (Channel & 0x10UL))) >> (Channel & 0x10UL));
516 #if defined (STM32L431xx) || defined (STM32L432xx) || defined (STM32L433xx) || defined (STM32L442xx) || defined (STM32L443xx) || \ 517 defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || defined (STM32L496xx) || defined (STM32L4A6xx) || \ 518 defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined(STM32L4S9xx) 544 tmp |= hdac->Instance->DOR1;
546 tmp |= hdac->Instance->DOR2 << 16U;
564 #if defined (STM32L431xx) || defined (STM32L432xx) || defined (STM32L433xx) || defined (STM32L442xx) || defined (STM32L443xx) || \ 565 defined (STM32L471xx) || defined (STM32L475xx) || defined (STM32L476xx) || defined (STM32L485xx) || defined (STM32L486xx) || defined (STM32L496xx) || defined (STM32L4A6xx) || \ 566 defined (STM32L4R5xx) || defined (STM32L4R7xx) || defined (STM32L4R9xx) || defined (STM32L4S5xx) || defined (STM32L4S7xx) || defined(STM32L4S9xx) 584 #if (USE_HAL_DAC_REGISTER_CALLBACKS == 1) 585 hdac->ConvCpltCallbackCh2(hdac);
590 hdac->State = HAL_DAC_STATE_READY;
603 #if (USE_HAL_DAC_REGISTER_CALLBACKS == 1) 604 hdac->ConvHalfCpltCallbackCh2(hdac);
621 hdac->ErrorCode |= HAL_DAC_ERROR_DMA;
623 #if (USE_HAL_DAC_REGISTER_CALLBACKS == 1) 624 hdac->ErrorCallbackCh2(hdac);
629 hdac->State = HAL_DAC_STATE_READY;
uint32_t DAC_TrimmingValue
struct __DAC_HandleTypeDef else typedef struct endif DAC_HandleTypeDef
DAC handle Structure definition.
__weak void HAL_DACEx_ConvCpltCallbackCh2(DAC_HandleTypeDef *hdac)
Conversion complete callback in non-blocking mode for Channel2.
DMA handle Structure definition.
HAL_StatusTypeDef HAL_DACEx_NoiseWaveGenerate(DAC_HandleTypeDef *hdac, uint32_t Channel, uint32_t Amplitude)
Enable or disable the selected DAC channel wave generation.
This file contains all the functions prototypes for the HAL module driver.
__weak void HAL_DACEx_ConvHalfCpltCallbackCh2(DAC_HandleTypeDef *hdac)
Conversion half DMA transfer callback in non-blocking mode for Channel2.
DAC Configuration regular Channel structure definition.
void HAL_Delay(uint32_t Delay)
This function provides minimum delay (in milliseconds) based on variable incremented.
void DAC_DMAErrorCh2(DMA_HandleTypeDef *hdma)
DMA error callback.
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
HAL_StatusTypeDef HAL_DACEx_TriangleWaveGenerate(DAC_HandleTypeDef *hdac, uint32_t Channel, uint32_t Amplitude)
Enable or disable the selected DAC channel wave generation.
uint32_t HAL_DACEx_GetTrimOffset(DAC_HandleTypeDef *hdac, uint32_t Channel)
Return the DAC trimming value.
uint32_t DAC_UserTrimming
HAL_StatusTypeDef HAL_DACEx_SelfCalibrate(DAC_HandleTypeDef *hdac, DAC_ChannelConfTypeDef *sConfig, uint32_t Channel)
Run the self calibration of one DAC channel.
HAL_StatusTypeDef HAL_DACEx_DualSetValue(DAC_HandleTypeDef *hdac, uint32_t Alignment, uint32_t Data1, uint32_t Data2)
Set the specified data holding register value for dual DAC channel.
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)
__weak void HAL_DACEx_DMAUnderrunCallbackCh2(DAC_HandleTypeDef *hdac)
DMA underrun DAC callback for Channel2.
void DAC_DMAConvCpltCh2(DMA_HandleTypeDef *hdma)
DMA conversion complete callback.
void DAC_DMAHalfConvCpltCh2(DMA_HandleTypeDef *hdma)
DMA half transfer complete callback.
uint32_t HAL_DACEx_DualGetValue(DAC_HandleTypeDef *hdac)
Return the last data output value of the selected DAC channel.
HAL_StatusTypeDef HAL_DACEx_SetUserTrimming(DAC_HandleTypeDef *hdac, DAC_ChannelConfTypeDef *sConfig, uint32_t Channel, uint32_t NewTrimmingValue)
Set the trimming mode and trimming value (user trimming mode applied).
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))
__weak void HAL_DACEx_ErrorCallbackCh2(DAC_HandleTypeDef *hdac)
Error DAC callback for Channel2.