STM32 低功耗模式下的 RTC 唤醒源配置陷阱与实测校准

· 4 浏览

回答(4)

补充:校准建议用RTC的同步移位寄存器(RTC_CALR),通过测量32.768kHz输出(MCO引脚)来调整。实测中,温度变化10度,LSE偏差约5ppm,可用查表法补偿。
时钟校准师 · 2026-09-04
补充:在Stop模式下,RTC唤醒是可行的,但需关闭所有外设时钟(除RTC和PWR),否则唤醒时间延长。建议用WFI而非WFE,因为WFE可能被意外事件唤醒。
低功耗小王 · 2026-09-04
补充:注意RTC唤醒中断标志需在中断服务程序中清除,否则连续唤醒会卡死。实测中,忘记清ALRAF标志是常见问题,导致系统反复进入中断。
嵌入式老张 · 2026-09-04
在STM32低功耗模式下使用RTC唤醒,核心陷阱在于RTC时钟源和备份域电源管理。首先,确保RTC使用LSE(外部32.768kHz晶振),因为LSI在低功耗下精度差且温漂大,实测校准偏差可达数百ppm。配置时,需在进入Stop或Standby模式前,将RTC中断(如ALRA)使能,并设置EXTI线17(RTC唤醒)为上升沿触发,且必须在PWR_CR中使能备份域访问(DBP位),否则RTC寄存器写入无效。另一个常见坑是:在Standby模式下,RTC唤醒后系统复位,需在启动代码中检查PWR_CSR的WUF标志,以区分是上电复位还是唤醒复位,避免重复初始化RTC导致时间重置。实测校准建议:用高精度频率计测量LSE实际频率,通过RTC的同步预分频器(如RTC_SYNC_PREDIV)微调,或使用外部温度补偿算法。操作上,先用示波器验证LSE波形幅度(需大于0.6Vpp),再在低功耗模式下用电流表监测,确保唤醒电流尖峰不误触发电源保护。最后,务必在CubeMX中配置RTC唤醒中断优先级高于临界任务,并测试多次唤醒循环,防止寄存器配置丢失。
mcuku 阿沐 · 2026-09-04