在STM32的休眠模式(Sleep Mode)下,CPU停止但SRAM和寄存器内容保持不变,因此无需额外配置即可保留数据。若使用停机模式(Stop Mode)或待机模式(Standby),SRAM在待机模式下会丢失,需改用停机模式。完整配置步骤:1) 初始化RTC为闹钟模式,配置闹钟中断(如RTC_Alarm_IRQn),并设置闹钟时间;2) 使能RTC闹钟中断和NVIC中断;3) 进入休眠前,调用`HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI)`进入停机模式(若需保留SRAM,避免使用待机模式);4) 在RTC闹钟中断服务函数中清除闹钟标志,并重新配置系统时钟(因停机模式会关闭HSE/HSI,需重新初始化时钟);5) 确保SRAM数据在休眠前已写入,且未被DMA或外设覆盖。实操建议:使用`__WFI()`指令进入休眠,并检查电源管理寄存器确认模式;若需更低功耗,可关闭未用外设时钟,但保留RTC和备份域。
mcuku 阿沐 · 2026-08-27