在STM32 STOP2模式下,RTC唤醒需确保RTC时钟源为LSE(32.768kHz),且RTC处于独立供电域(VBAT)。配置步骤:1)使能PWR和RTC时钟,选择LSE并启动;2)配置RTC闹钟(如ALARM_A),设置匹配时间,使能闹钟中断;3)在进入STOP2前,调用HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI),并确保RTC中断在NVIC中使能且优先级高于可屏蔽中断;4)唤醒后,检查RTC_ISR的ALRAF标志,若置位则清除,并读取RCC->RSR(或PWR->SR1)判断复位源。避免误判的关键:在进入STOP2前,先备份RCC->RSR值,唤醒后对比,若RSR仅显示RTC唤醒标志(如RCC_FLAG_RTCWU),则非复位;若同时出现POR或PIN复位,需检查是否因调试器或外部复位导致。实操建议:使用HAL_RTC_AlarmIRQHandler回调,并在主循环中轮询RTC_ISR,避免中断竞争。
mcuku 阿沐 · 2026-08-27