Run the self calibration of one OPAMP.
644 HAL_StatusTypeDef status =
HAL_OK;
646 uint32_t trimmingvaluen;
647 uint32_t trimmingvaluep;
651 __IO uint32_t* tmp_opamp_reg_trimming;
670 assert_param(IS_OPAMP_POWERMODE(hopamp->Init.PowerMode));
675 opampmode = READ_BIT(hopamp->Instance->CSR,OPAMP_CSR_OPAMODE);
678 MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_OPAMODE, OPAMP_STANDALONE_MODE);
681 SET_BIT(hopamp->Instance->CSR, OPAMP_CSR_USERTRIM);
684 if (hopamp->Init.PowerMode == OPAMP_POWERMODE_NORMAL)
686 tmp_opamp_reg_trimming = &hopamp->Instance->OTR;
690 tmp_opamp_reg_trimming = &hopamp->Instance->LPOTR;
694 SET_BIT (hopamp->Instance->CSR, OPAMP_CSR_CALON);
697 CLEAR_BIT (hopamp->Instance->CSR, OPAMP_CSR_CALSEL);
700 SET_BIT (hopamp->Instance->CSR, OPAMP_CSR_OPAMPxEN);
704 trimmingvaluen = 16U;
711 MODIFY_REG(*tmp_opamp_reg_trimming, OPAMP_OTR_TRIMOFFSETN, trimmingvaluen);
718 if (READ_BIT(hopamp->Instance->CSR, OPAMP_CSR_CALOUT) != 0U)
721 trimmingvaluen -= delta;
726 trimmingvaluen += delta;
735 MODIFY_REG(*tmp_opamp_reg_trimming, OPAMP_OTR_TRIMOFFSETN, trimmingvaluen);
742 if ((READ_BIT(hopamp->Instance->CSR, OPAMP_CSR_CALOUT)) == 0U)
747 MODIFY_REG(*tmp_opamp_reg_trimming, OPAMP_OTR_TRIMOFFSETN, trimmingvaluen);
751 SET_BIT (hopamp->Instance->CSR, OPAMP_CSR_CALSEL);
755 trimmingvaluep = 16U;
762 MODIFY_REG(*tmp_opamp_reg_trimming, OPAMP_OTR_TRIMOFFSETP, (trimmingvaluep<<OPAMP_INPUT_NONINVERTING));
769 if (READ_BIT(hopamp->Instance->CSR, OPAMP_CSR_CALOUT) != 0U)
772 trimmingvaluep += delta;
777 trimmingvaluep -= delta;
787 MODIFY_REG(*tmp_opamp_reg_trimming, OPAMP_OTR_TRIMOFFSETP, (trimmingvaluep<<OPAMP_INPUT_NONINVERTING));
794 if (READ_BIT(hopamp->Instance->CSR, OPAMP_CSR_CALOUT) != 0U)
798 MODIFY_REG(*tmp_opamp_reg_trimming, OPAMP_OTR_TRIMOFFSETP, (trimmingvaluep<<OPAMP_INPUT_NONINVERTING));
802 CLEAR_BIT (hopamp->Instance->CSR, OPAMP_CSR_OPAMPxEN);
805 CLEAR_BIT (hopamp->Instance->CSR, OPAMP_CSR_CALON);
811 hopamp->Init.UserTrimming = OPAMP_TRIMMING_USER;
814 if (hopamp->Init.PowerMode != OPAMP_POWERMODE_LOWPOWER)
817 hopamp->Init.TrimmingValueN = trimmingvaluen;
819 hopamp->Init.TrimmingValueP = trimmingvaluep;
824 hopamp->Init.TrimmingValueNLowPower = trimmingvaluen;
826 hopamp->Init.TrimmingValuePLowPower = trimmingvaluep;
830 MODIFY_REG(hopamp->Instance->CSR, OPAMP_CSR_OPAMODE, opampmode);
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)
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))