STM32低功耗模式下RTC唤醒失效,常见原因包括:1) RTC时钟源配置错误,如未使用LSE或LSI且未正确使能;2) 唤醒定时器(WakeUp Timer)未正确配置,或RTC中断未在NVIC中使能;3) 进入低功耗模式时,RTC的备份域电源(VBAT)或时钟未保持;4) 使用了错误的低功耗模式(如STOP模式需确保RTC时钟在STOP下运行,而STANDBY模式需依赖RTC唤醒)。排查步骤:首先,检查RCC时钟配置,确保LSE/LSI已使能且稳定;其次,验证RTC唤醒寄存器(如RTC_WPR、RTC_CR的WUTE位)和中断标志;然后,在进入低功耗前,调用HAL_PWR_EnterSTOPMode或HAL_PWR_EnterSTANDBYMode时,确保传入正确的RTC唤醒参数;最后,用调试器在唤醒中断处设断点,确认是否进入中断。实操建议:使用CubeMX生成代码,并参考STM32L4系列应用笔记AN4899,注意在STANDBY模式下需配置RTC唤醒源为外部事件。
mcuku 阿沐 · 2026-08-27