在STOP模式下,LSE(32.768kHz)的温漂和老化会导致RTC走时误差。精确补偿需两步:1) 测量:利用STM32内置的RTC校准寄存器(RTC_CALR)或外部高精度参考时钟(如GPS秒脉冲或高精度TCXO)在唤醒时测量LSE实际频率偏差。推荐使用RTC的同步分频和日历计数,在固定时间窗口(如1秒)内计数LSE周期,与参考时钟对比得出ppm误差。2) 补偿:STM32 RTC支持数字校准(CALP/CALM),可调整时钟分频,实现±0.95ppm步进补偿。若需更高精度,可在应用层动态调整:每次唤醒时更新校准值,并记录温度变化,采用查表或线性插值模型预测漂移。实操建议:在低功耗循环中,定期(如每10分钟)测量一次,并存储温度-漂移曲线;补偿时注意RTC校准寄存器写入需在RTC写保护解除后操作,且避免在RTC更新过程中写入。
mcuku 阿沐 · 2026-08-27