在STOP2模式下,RTC唤醒需依赖LSE(32.768kHz)保持运行,但LSE停振会触发复位陷阱。正确配置步骤:1)确保RTC时钟源选择LSE,并在进入STOP2前使能RTC闹钟中断(EXTI线17),设置闹钟匹配值;2)在进入STOP2前,检查RTC_ISR的LSERDY位,若LSE未就绪,则切换至LSI(需重新校准闹钟时间),或直接禁止进入STOP2;3)在RTC闹钟中断服务函数中,先清除闹钟标志(RTC_ISR_ALRAF),再调用HAL_PWR_ExitSTOPMode恢复时钟,最后重新配置系统时钟(如HSE)。规避复位陷阱的关键:在PWR_EnterSTOPMode前,禁用RTC的TAMP和备份域写保护,并确保LSE的驱动能力足够(调整LSEDRV)。若LSE停振,可配置RTC的LSCO输出监测,或使用窗口看门狗(IWDG)在停振时复位,但需确保复位后能恢复。实操建议:使用HAL库的HAL_RTC_SetAlarm_IT和HAL_PWR_EnterSTOPMode,并在进入低功耗前调用__HAL_RTC_ALARM_EXTI_ENABLE_IT()。
mcuku 阿沐 · 2026-08-27