关于RTC的玄学bug分析与解决
现象:按键长按或者连续按压导致RTC起振异常;
RTC经过的时间读取出来没有变化,或者变化异常
在这里插入图片描述

发现:经过一下午复现排查后,按键背面为晶振区域;我摁下按键的手法会按压到晶振区域导致晶振异常;人按下按键时未按压到晶振区域.无法复现;如图

在这里插入图片描述
另外该现象体现在如下方面:

使用LSE为时钟源,可能导致初始化失败;看图,BootLoader成功跳转,app初始化错误;

在这里插入图片描述

这是错误发生位置,APP的时钟初始化;
在这里插入图片描述

对比APP和BL的时钟初始化以及RTC导致失败的原因分析发现.

bl中仅初始化了HSE,app中还初始化了LSE,使用了RTC硬件资源导致初始化失败

检测使用RTC的时间去处理的函数,例如延时等操作,会一并异常.现象为无法继续运行下去

不在按压RTC器件后,可能现象还会出现,形变还没消失;还会出现上述情况.

得等待结束

总结:

不要接触挤压精密器件部分

硬件布线应考虑布局,按键背面不应该放精密器件