使用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 |
RE:求助:STM32F407 RTC读日期 错误的问题
回复:求助:STM32F407 RTC读日期 错误的问题
回复:求助:STM32F407 RTC读日期 错误的问题
这个可能是安分钟算的天数
用的是官方的例程,直接从寄存器里面读出来的日期,难道是芯片的BUG?
RE:求助:STM32F407 RTC读日期 错误的问题
RE:求助:STM32F407 RTC读日期 错误的问题
回复:求助:STM32F407 RTC读日期 错误的问题
我看了一下源码,还有手册,读取应该是没有问题的。
我在程序里,开放了一个50ms的定时中断,每50ms对日期寄存器进行一次读操作(仅读,不要数据),现在在主循环里,5S读一次日期,可以同步更新了。看样子还是寄存器值更新的问题,原因尚不明确
回复:求助:STM32F407 RTC读日期 错误的问题
点评
回复:求助:STM32F407 RTC读日期 错误的问题
http://bbs.ic37.com/bbsview-29425.htm
他说的对,我试过硬件复位一下读回来的就正确的,说明内部时间已经正确更新了。难怪RTC提供了直读内部计数器而不是读影子寄存器的功能。我再试试。
回复:求助:STM32F407 RTC读日期 错误的问题
很诡异的设计,那个帖子里提到了,但还没说太明白。手册和应用笔记里都没写这个行为。