Run the self calibration of one DAC channel.
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);
uint32_t DAC_TrimmingValue
void HAL_Delay(uint32_t Delay)
This function provides minimum delay (in milliseconds) based on variable incremented.
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
uint32_t DAC_UserTrimming
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))