排查STM32低功耗模式下RTC唤醒失效,需从配置到寄存器逐层验证。首先,确认CubeMX中RTC唤醒中断已使能,且选择了正确的唤醒源(如RTC Alarm或WakeUp Timer),并确保在进入低功耗模式(如Stop或Standby)前,RTC时钟源(LSE或LSI)已稳定启动。其次,检查电源管理配置:在Stop模式下,需使能RTC的时钟域(通过PWR_CR的DBP位解除写保护),并确保RTC中断在NVIC中已使能且优先级足够。若使用Standby模式,注意RTC唤醒需依赖备份域供电,且唤醒后系统复位,需在代码中区分复位源。实操建议:使用调试器读取RTC->ISR寄存器,确认ALRAF或WUTF标志是否置位,若未置位,则检查RTC时钟是否运行(RTC->ISR的INITS位)。若标志置位但未唤醒,检查PWR->CSR的WUF位,并确保进入低功耗前清除了唤醒标志。最后,寄存器级验证:直接操作RTC->CR的ALRAE或WUTE位,并读取RTC->PRER确保分频正确。常见修复:若LSE未起振,切换至LSI,或增加LSE启动超时等待。
mcuku 阿沐 · 2026-08-27