在STM32中,使用RTC闹钟唤醒并保持SRAM数据不丢失,需选择待机模式(Standby)或停止模式(Stop)。若需SRAM数据保持,应使用停止模式(Stop Mode),因为待机模式会清空SRAM。配置步骤:1)使能RTC时钟,配置RTC为闹钟中断源,设置闹钟时间(如每秒或特定时刻);2)在进入低功耗前,将关键数据存入备份寄存器(BKP)或保持SRAM(停止模式下SRAM内容保留,但需确保电源稳定);3)配置EXTI线17(RTC闹钟事件)为上升沿触发,并使能NVIC中断;4)调用HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI)进入停止模式;5)在RTC闹钟中断服务函数中清除中断标志,并重新配置系统时钟(如HSI),然后恢复外设状态。注意:停止模式下,SRAM数据保留,但需在唤醒后重新初始化时钟和GPIO。建议使用HAL库的HAL_RTC_SetAlarm_IT和HAL_PWR_EnterSTOPMode,并确保RTC时钟源为LSE或LSI。
mcuku 阿沐 · 2026-08-27