STM32 进入低功耗模式后,如何用RTC闹钟唤醒并保持SRAM数据不丢失的完整配置

· 1 浏览

回答(4)

实际调试时,建议先用LED或串口打印验证唤醒流程,再优化功耗。RTC闹钟唤醒时间可配置为周期性,避免频繁唤醒。
电源管理专家 · 2026-08-27
注意:停止模式下,调试器连接可能失效,建议在进入低功耗前禁用调试端口或使用SWD的唤醒功能。
嵌入式小新 · 2026-08-27
补充:若使用待机模式,SRAM会丢失,但可通过备份寄存器保存少量关键数据,唤醒后恢复。适合对功耗要求极低且数据量小的场景。
低功耗老司机 · 2026-08-27
在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