在STM32的STOP2模式下,RTC闹钟唤醒是常用方案,但需注意LSE(32.768kHz)的稳定性。首先,确保RTC时钟源选择LSE,并在进入STOP2前配置RTC闹钟中断(如RTC_AlarmCmd和RTC_ITConfig),使能EXTI线17(RTC闹钟事件)并配置为上升沿触发。同时,在进入STOP2前,需将RTC的备份域寄存器(如RTC_ISR中的ALRAF)清零,并检查LSE是否就绪(RCC_GetFlagStatus(RCC_FLAG_LSERDY))。为避免LSE停振,建议在进入低功耗前,将LSE的驱动能力调至最高(RCC_LSEConfig(RCC_LSE_LOWPOWER)改为RCC_LSE_HIGHDRIVE),并确保外部负载电容匹配(通常6-12pF)。此外,在唤醒后,立即检查LSE状态,若停振则重新初始化LSE并校准RTC。实操中,可先测试在STOP2下RTC闹钟是否正常唤醒,若失败,检查电源管理(如PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI))和唤醒源配置。建议使用HAL库的HAL_RTC_SetAlarm_IT和HAL_PWR_EnterSTOPMode,并确保在中断服务程序中清除闹钟标志。
mcuku 阿沐 · 2026-08-27