STM32F407 RTC读日期错误是什么原因

2019-07-14 18:16发布

使用STM32F407 标准库的RTC例程,调用函数RTC_GetDate(RTC_Format_BIN, &RTC_DateStructure);读取日期,每5S读一次,发现在每天的凌晨时,小时值读出来,可以从23:59:59 正确的读到第2天的00:00:04S,而日期值在过凌晨后,还是前一天的日期,大约再读1分钟得样子,日期读出来才更新,不知道是什么原因,望各位朋友帮忙分析分析,谢谢。
The current time is :  12-12-12 23:59:56
The current time is :  12-12-12 23:59:59
The current time is :  12-12-12 00:00:04
The current time is :  12-12-12 00:00:09
The current time is :  12-12-12 00:00:14
The current time is :  12-12-12 00:00:19
The current time is :  12-12-12 00:00:24
The current time is :  12-12-12 00:00:29
The current time is :  12-12-12 00:00:34
The current time is :  12-12-12 00:00:39
The current time is :  12-12-12 00:00:44
The current time is :  12-12-12 00:00:49
The current time is :  12-12-12 00:00:54
The current time is :  12-12-12 00:00:59
The current time is :  12-12-12 00:01:04
The current time is :  12-12-12 00:01:09
The current time is :  12-12-12 00:01:14
The current time is :  12-12-12 00:01:19
The current time is :  12-12-12 00:01:24
The current time is :  12-12-13 00:01:29
The current time is :  12-12-13 00:01:34
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
uyvwyewr
1楼-- · 2019-07-15 22:17
我也遇到这个问题,三更半夜看手册困得东倒西歪也没搞定。后来搜到这地方有人提到这个问题,见最后一个回复:
http://bbs.ic37.com/bbsview-29425.htm
他说的对,我试过硬件复位一下读回来的就正确的,说明内部时间已经正确更新了。难怪RTC提供了直读内部计数器而不是读影子寄存器的功能。我再试试。
uyvwyewr
2楼-- · 2019-07-15 23:44
确认了一下,要先读时间RTC_GetTime(),然后再读日期RTC_GetDate(),这时候的日期是可以同步正常进位的。反过来则不行,问题主要出在过日进位那个点上。
很诡异的设计,那个帖子里提到了,但还没说太明白。手册和应用笔记里都没写这个行为。

一周热门 更多>