stm32频繁复位,导致rtc定时误差问题

2019-07-21 00:00发布

如题:  单片机:stm32l071  使用LSE作为内部rtc时钟源,系统每天工作一次,随后进入待机模式,在待机模式下需要频繁唤醒

问题:定时一天的情况下,实测由于频繁唤醒,会造成rtc走的时间比实际时间慢

问:

(1)理论上来说,在配置LSE作为RTC时钟源的情况下,只要不掉电,RTC一直在跑,复位为何会对rtc时间有影响?

(2)目前猜测的原因,一个是每次唤醒初始化rtc造成影响,如是该原因,可否复位后不初始化rtc?

(3)另一个可能原因是复位后需要重新配置LSE时钟,造成rtc误差,如是该原因,如何解决?

恳请高手帮忙指点一二,感谢!!!


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
supergao
1楼-- · 2019-07-22 06:27
 精彩回答 2  元偷偷看……
supergao
2楼-- · 2019-07-22 10:56
 精彩回答 2  元偷偷看……
zc123
3楼-- · 2019-07-22 12:19
本帖最后由 zc123 于 2018-12-8 10:59 编辑

你这个问题我怀疑是唤醒定时时间和看门狗喂狗时间比较接近,喂狗不及时导致复位,然后软件又进行了RTC的重新初始化,你可以保持现在的代码不变(就是正常唤醒-休眠轮询),但屏蔽掉看门狗相关的代码,在测试看看。还有你既然做低功耗产品,用什么看门狗啊,不要想着面面俱到,看门狗和低功耗产品的需求是冲突的。
simms01
4楼-- · 2019-07-22 17:55
最笨的办法   测出 误差秒数 与 唤醒次数的关系   然后每次唤醒补偿下就拉倒了   。
simon9508
5楼-- · 2019-07-22 23:43
您最后这个问题怎么解决的呢?

一周热门 更多>