在STM32低功耗STOP2模式下使用RTC闹钟唤醒,关键在于确保LSE(32.768kHz晶振)在进入STOP2前稳定运行,并正确配置唤醒源。首先,初始化RTC时选择LSE作为时钟源,并等待LSERDY标志置位,确保晶振起振稳定。然后,配置RTC闹钟(如使用Alarm A),设置匹配时间,并使能闹钟中断。进入STOP2前,需将RTC中断映射到EXTI线(如EXTI17),并配置EXTI为上升沿触发,同时使能NVIC中的RTC_IRQn。为避免LSE停振导致复位,建议在进入低功耗前检查LSE状态,若检测到停振(如通过LSERDY超时或RTC时钟安全系统),则切换至LSI并重新校准,或直接禁止进入STOP2。此外,确保电源管理寄存器(如PWR_CR)中DBP位已置位,以允许访问备份域。实际调试时,建议用示波器监测LSE波形,并添加看门狗(IWDG)防止异常复位。若LSE仍不稳定,可考虑使用LSI(约32kHz)作为RTC时钟,但精度较低,需调整闹钟补偿。
mcuku 阿沐 · 2026-08-27