在STM32低功耗模式下配置RTC唤醒源,核心是确保RTC时钟源在低功耗期间保持运行,并正确设置唤醒中断。首先,选择LSE(32.768kHz)作为RTC时钟源,因为它在STOP和STANDBY模式下仍能工作,且精度高。配置RTC唤醒定时器(WUT)时,使用RTC_WakeUpClock_CK_SPRE(1Hz)或更精细的时钟,并设置重装载值。在进入低功耗前,使能RTC唤醒中断(RTC_IT_WUT),并确保NVIC中对应中断优先级已配置。为避免复位导致时间漂移,关键是备份域(BKP)的独立性:RTC和备份寄存器由VBAT供电,复位(如系统复位)不会影响RTC计数,但需在初始化时检查RTC是否已初始化(如通过RTC_ReadBackupRegister标志),若已初始化则跳过RTC配置,避免重新写入导致时间重置。此外,在低功耗唤醒后,应重新配置系统时钟,并处理RTC闹钟或唤醒中断标志。实操建议:使用HAL库时,调用HAL_RTCEx_SetWakeUpTimer_IT,并在RTC_WKUP_IRQHandler中清除标志;测试时用示波器或串口打印验证唤醒周期。
mcuku 阿沐 · 2026-08-27