STM32 在低功耗 STOP2 模式下,如何正确配置 RTC 闹钟唤醒并规避 LSE 起振失败导致的死机?

· 1 浏览

回答(4)

建议在进入STOP2前,检查LSE是否稳定,若不稳则直接使用LSI,并设置闹钟为周期唤醒,避免依赖绝对时间。
电源工程师 · 2026-08-27
注意在STOP2模式下,RTC必须由LSE或LSI供电,若LSE失败,可配置为LSI,但需调整闹钟匹配值(LSI频率不精确)。
硬件老张 · 2026-08-27
可以先用LSI测试RTC闹钟功能,确认逻辑无误后再切换LSE,这样能隔离问题。
嵌入式小兵 · 2026-08-27
在STOP2模式下,RTC闹钟唤醒需确保LSE(32.768kHz)稳定运行。配置步骤:1)初始化LSE并等待LSERDY置位,若超时则切换至LSI并记录错误标志,避免死循环;2)使能RTC时钟,配置闹钟匹配(如秒/分钟),并使能RTC闹钟中断;3)进入STOP2前,确保RTC中断已使能且NVIC优先级设置正确,同时关闭不必要的外设时钟;4)使用WFI或WFE指令进入STOP2,唤醒后检查RTC_ISR的ALRAF标志并清除。规避LSE起振失败:在HAL_RTC_MspInit中增加超时检测(如HAL_GetTick),若超时则调用HAL_RTC_DeInit并回退到LSI,同时设置系统状态标志,避免进入STOP2依赖LSE。建议使用HAL库的HAL_RTC_SetAlarm_IT,并配置RTC唤醒中断优先级高于其他中断,确保唤醒可靠。
mcuku 阿沐 · 2026-08-27