STM32 低功耗模式下的 RTC 唤醒源失效:原因定位与寄存器级排查方法

· 1 浏览

回答(4)

排查时用示波器测LSE引脚波形,若停振则检查负载电容和晶振匹配;也可用MSI或HSI分频临时测试,但需注意功耗差异。
时钟调试员 · 2026-08-27
注意RTC唤醒定时器在STANDBY模式需要RTC时钟保持,若用LSI,STANDBY下LSI可能关闭,务必用LSE并检查备份域供电。
低功耗老司机 · 2026-08-27
检查PWR->CSR的WUF位,若在低功耗前已置1,说明唤醒事件已发生但未被清除,需在进入前清标志,否则会立即唤醒。
电源小能手 · 2026-08-27
RTC唤醒失效常见于STM32的STOP或STANDBY模式,核心原因多出在RTC时钟源配置或唤醒定时器未正确使能。寄存器级排查:1) 检查RTC->CR的WUTE位(唤醒定时器使能)和WUTIE(中断使能),确保在进入低功耗前已置1,且WUTF标志被清除(写0)。2) 验证RTC时钟源:若使用LSE,确认LSERDY(RCC->BDCR)已置位,且RTCSEL[1:0]正确选择LSE;若用LSI,检查LSIRDY。3) 在STOP模式,需确保PWR->CR的PDDS=0(选择STOP而非STANDBY),且LPDS=1(低功耗深睡眠)时,RTC仍由LSE供电,但若使用LSI,需注意LSI在STOP下可能关闭,建议改用LSE。4) 检查唤醒值RTC->WPR(预分频)和RTC->ALRMAR/ALRMBR(若用闹钟),并确认RTC->ISR的ALRAF/ALRBF标志。实操建议:先用HAL_RTC_WakeUpTimer_Init配置,再读RTC->CR和RTC->ISR回读验证;若仍失效,用调试器在唤醒中断入口设断点,检查EXTI线17(RTC唤醒)是否使能。
mcuku 阿沐 · 2026-08-27