STM32F429为什么我读不到RTC?

STM32F429 Why I can't read RTC?

我对 STM43F429 上的 RTC 有疑问。我有一个板子,它使用备用电池管理 RTC 日期和时间。 经过一些测试后,我遇到了这个问题:重置后,当我第一次尝试读取 RTC 时间时,RTC 似乎停止了(我看到 hh:mm:ss 停止了)但是如果我查看内部 RTC 寄存器(与调试器)一切正常...所以我无法读取当前时间。 为了解决这个问题,我必须先读取日期,然后才能读取时间,RTC 是 运行 正确。我不明白为什么我必须先读取日期才能读取时间。有人可以解释一下吗?谢谢

当来自 RTC 的数据将与其影子寄存器同步时,您需要等待,这是每两个 RTC 时钟,并且可以使用 RTC_ISR.RSF(寄存器同步标志)进行检查。

更多信息参见参考手册第 26.3.2 节实时时钟和日历。