在STM32低功耗模式下配置RTC唤醒,核心是确保RTC时钟源稳定并正确设置唤醒定时器。首先,选择LSE(32.768kHz)作为RTC时钟源,因为它比LSI(约40kHz)精度高得多,能显著减少漂移。在进入低功耗模式(如STOP或STANDBY)前,配置RTC的唤醒定时器(WUT)或闹钟(ALARM),并启用RTC中断。关键步骤:1) 使用HAL_RTCEx_SetWakeUpTimer_IT()设置唤醒周期,并确保RTC时钟源已使能且稳定(等待LSERDY标志);2) 在进入低功耗前,调用HAL_PWR_EnterSTOPMode()或HAL_PWR_EnterSTANDBYMode(),但需注意STANDBY模式下RTC需由备份域供电,且唤醒后需重新初始化时钟;3) 为避免漂移,建议校准LSE,使用RTC的同步预分频器(如设置ASYNC和SYNC分频值)来微调,或使用外部32.768kHz晶振并检查负载电容。实操建议:在唤醒中断中,记录唤醒时间,并定期校准RTC(如通过GPS或网络时间),同时避免在低功耗期间频繁切换时钟源。最后,测试时用示波器测量LSE波形,确保无异常抖动。
mcuku 阿沐 · 2026-08-27