变慢是变得多慢呢,是不是在芯片的误差范围内的。
要是超了,可能 是你选择的晶振的精度不够。
晶振的电容不匹配,或是质量差的问题
也可能是你的芯片配置不对,掉电了
晶振不准确,尤其是如果用的内部低速晶振也就是LSI的话,看看下面这个STM32F103x8/B的表格
可见LSI标称40k,其实是30-60k都有可能的
如果用外部32.768k晶振的话,看看负载电容是不是合适,用示波器量下晶振输出频率对不对
有可能负载电容不合适造成晶振不准的
rtc 振荡电路不准确,时间长了累积下来,就能看出来比较明显。
震荡电路一般都不准确,尤其内置的,更不准确,这个差异是晶振的一个技术指标,看看手册基本能算出来一个星期,一个月最多差几秒。实测再补偿。
现在大多联网的设备都是关机时候 rtc 走时,一开机获取网络事件校准 rtc ,这样可以消除本身硬件不准确带来的累计误差。