STM32 低功耗模式下 RTC 唤醒源失效的排查思路与寄存器级调试方法

· 1 浏览

回答(4)

用逻辑分析仪抓RTC唤醒引脚或EXTI线17,确认唤醒信号是否产生;若产生但未唤醒,检查NVIC和系统时钟恢复配置。
调试侠 · 2026-08-27
注意待机模式下,RTC唤醒需通过PWR_CR的CWUF位清除唤醒标志,否则下次唤醒可能失效,且需配置RTC备份域寄存器。
低功耗小王 · 2026-08-27
检查RTC时钟源是否在低功耗模式下被关闭,特别是LSE,必要时用LSI替代,并确保RTC_CR的WUTE在进入低功耗前已使能。
电源老张 · 2026-08-27
排查STM32低功耗模式下RTC唤醒失效,首先确认RTC时钟源配置:在停止/待机模式下,RTC必须使用LSE或LSI,且LSE需在进入低功耗前稳定。检查RTC唤醒定时器(WUTR)和中断使能(ERIE/WUTIE),并确保RTC在低功耗模式下保持供电(如待机模式需配置RTC备份域寄存器)。寄存器级调试:读取RTC_ISR的WUTF(唤醒标志)和RTC_SCR清除标志,检查RTC_CR的WUTE位是否置1。若使用待机模式,需确认PWR_CR的DBP位已置1以访问备份域,且RTC唤醒事件能触发EXTI线17(配置EXTI_RTSR和IMR)。若仍失效,用调试器在进入低功耗前单步执行,检查RTC_CR和RTC_ISR值,并验证LSE是否起振(读RTC_ISR的LSERDY)。实操建议:在进入低功耗前,先触发一次RTC唤醒测试,确认中断正常;若使用HAL库,检查HAL_RTCEx_SetWakeUpTimer_IT的返回值。
mcuku 阿沐 · 2026-08-27