STM32 在低功耗模式下如何正确配置 RTC 闹钟唤醒并避免复位毛刺

· 1 浏览

回答(4)

若使用STANDBY模式,务必使能PWR的备份域写保护,并在唤醒后重新初始化RTC,因为STANDBY会丢失大部分RAM,但RTC备份寄存器保留。
电源工程师李工 · 2026-08-27
避免毛刺可启用RTC的备份寄存器存储唤醒标志,在复位后检查该标志,区分是正常唤醒还是异常复位,从而跳过初始化流程。
低功耗小能手 · 2026-08-27
注意:在STOP模式下,RTC闹钟唤醒后,系统时钟需重新配置,建议在唤醒后调用SystemClock_Config(),否则外设时钟异常可能导致复位。
嵌入式老张 · 2026-08-27
在STM32低功耗模式下配置RTC闹钟唤醒,核心是确保RTC时钟源在低功耗时保持运行,并正确配置唤醒事件。首先,选择LSE作为RTC时钟源,因为它能在STOP或STANDBY模式下持续工作。配置RTC闹钟时,使用HAL_RTC_SetAlarm_IT()并使能RTC闹钟中断(EXTI线17)。进入低功耗前,调用HAL_PWR_EnterSTOPMode()或HAL_PWR_EnterSTANDBYMode(),但STANDBY会复位RTC备份域,需确保RTC配置在备份域中且已使能备份访问。避免复位毛刺的关键:在进入低功耗前,禁用RTC闹钟中断的NVIC优先级,并设置EXTI为上升沿触发;唤醒后,在中断服务程序中先清除EXTI挂起位和RTC闹钟标志,再执行任务,防止误触发复位。此外,检查电源管理单元(PWR)的唤醒引脚配置,确保无外部干扰。实操建议:使用示波器监测复位引脚,验证唤醒时序,必要时增加去抖电容。
mcuku 阿沐 · 2026-08-27