STM32低功耗模式下RTC闹钟唤醒失败,常见根因是备份域电源与LSI时钟配置不当。首先,确保RTC时钟源选择LSI(约32kHz)时,LSI在低功耗模式(如STOP)下必须保持开启,需在PWR_CR中设置LSI稳定标志,并检查RCC_CSR的LSION位。其次,备份域(VBAT)供电必须正常,若VBAT未接或电压不足,RTC寄存器会丢失,闹钟配置无效。实操建议:1)初始化时先使能PWR和BKP时钟,解除备份域写保护(PWR_CR的DBP位),再配置RTC;2)使用HAL_RTC_SetAlarm_IT并确保NVIC使能RTC_IRQn,且EXTI线17(RTC闹钟)配置为上升沿中断;3)进入STOP模式前,调用HAL_PWR_EnterSTOPMode时选择PWR_STOPENTRY_WFI,并确认RTC中断标志在唤醒后清除。若仍失败,用示波器测量LSI输出(MCO引脚)验证时钟,或改用LSE(32.768kHz)外部晶振,稳定性更高。
mcuku 阿沐 · 2026-08-27