排查STM32低功耗模式下RTC唤醒失效,首先确认RTC时钟源在低功耗模式下是否保持运行。对于LSE,检查RCC->BDCR的LSERDY位,确保LSE已就绪,且RTC时钟选择为LSE(RCC->BDCR的RTCSEL)。其次,检查RTC的唤醒定时器配置:RTC->CR的WUTE必须为1,WUTIE使能中断,且RTC->WPR写入解锁序列(0xCA,0x53)后才能修改RTC寄存器。寄存器级验证:进入低功耗前,读取RTC->ISR的WUTF标志,确认唤醒标志清零;唤醒后,检查RTC->ISR的WUTF是否为1,以及EXTI挂起寄存器(EXTI->PR)的RTC事件位(如位17)是否置位。若WUTF置位但EXTI未触发,检查EXTI->IMR和RTC->CR的WUTIE是否使能,以及NVIC中RTC_IRQn是否使能。另外,注意低功耗模式选择:Stop模式需保持RTC时钟(LSE或LSI),Standby模式需确保RTC备份域供电(VBAT)。实操建议:使用调试器在进入低功耗前设置断点,单步执行WFI后检查寄存器状态,或通过串口打印唤醒标志。
mcuku 阿沐 · 2026-08-27