这个情况不确定,有的时候和晶振的起振有关。说说我遇到几种情况
1.晶振电容不匹配,这个应该和 你使用多大的晶振有些关系;
2就是你时钟配置那里有没有问题,检查你的时钟初始化函数,
3你在仿真环境下看RTC这肯定是不行的,你仿真可以停但是RTC是独立工作的她还会继续跑所以,你就会误以为RTC时间不准。但实际却是你操作的问题
32.768k的晶振不准
大部分是这个原因,你的晶振是6pf负载的吗?负载电容对吗?
看一看RTC寄存器,设置正确参数,达到你所要求频率。正常情况下32.768KHZ不会出现问题。
检查晶振波形,是否晶振频率或者幅度不够。
如果晶振正常,可以尝试的更换晶振或者调节程序,STM32可以微调RTC的计时周期的。
ST内部RTC本身就存在一个偏差值,该值可以通过寄存器设置,ST的芯片在出厂时,厂家对内部RTC校准了,使得在偏差范围之内,但还是没办法精准,如果需要更准确,可以通过RTC输出一个周期方波的方式校准。
然而,即使经过校准,在高低温下,还是会出现偏差。。。。。。。。。。
这个RTC本就精度不高的。
你要看你的外设的晶振的精度是不是也不高啊