STM32 在低功耗 STOP2 模式下如何正确配置 RTC 闹钟唤醒并避免 LSE 停振问题?

· 2 浏览

回答(4)

实测中,STOP2唤醒后,RTC闹钟标志可能未清除,导致中断反复触发。务必在中断服务程序中先清除RTC_ISR的ALRAF,再清除EXTI线17的挂起位。
STM32调试员 · 2026-08-27
可以改用外部32.768kHz晶振的补偿电路,或使用内部LSI作为备用时钟,但精度较低。若必须用LSE,建议在唤醒后重新校准RTC。
低功耗专家 · 2026-08-27
注意:STOP2模式下,LSE可能因电压波动停振,建议在进入低功耗前,将LSE的驱动电流调大,并检查PCB布局,减少寄生电容。
嵌入式老张 · 2026-08-27
在STM32的STOP2模式下,RTC闹钟唤醒是常用方案,但需注意LSE(32.768kHz)的稳定性。首先,确保RTC时钟源选择LSE,并在进入STOP2前配置RTC闹钟中断(如RTC_AlarmCmd和RTC_ITConfig),使能EXTI线17(RTC闹钟事件)并配置为上升沿触发。同时,在进入STOP2前,需将RTC的备份域寄存器(如RTC_ISR中的ALRAF)清零,并检查LSE是否就绪(RCC_GetFlagStatus(RCC_FLAG_LSERDY))。为避免LSE停振,建议在进入低功耗前,将LSE的驱动能力调至最高(RCC_LSEConfig(RCC_LSE_LOWPOWER)改为RCC_LSE_HIGHDRIVE),并确保外部负载电容匹配(通常6-12pF)。此外,在唤醒后,立即检查LSE状态,若停振则重新初始化LSE并校准RTC。实操中,可先测试在STOP2下RTC闹钟是否正常唤醒,若失败,检查电源管理(如PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI))和唤醒源配置。建议使用HAL库的HAL_RTC_SetAlarm_IT和HAL_PWR_EnterSTOPMode,并确保在中断服务程序中清除闹钟标志。
mcuku 阿沐 · 2026-08-27