打印
[STM32F4]

访问F4 RTC需要注意的问题

[复制链接]
1152|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
seawwh|  楼主 | 2015-4-4 13:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RTC, ge, TE, se, TI
F4 的RTC功能比较强,但使用中如果不注意细节,就会发生奇怪的现象:
我对F4 的RTC设置时间和日期的时候,发现经常日期设置失败,其值修改不了,但是时间的修改没有问题。
使用的是4个库函数:
  RTC_GetDate
   RTC_GetTime
   RTC_SetDate
   RTC_SetTime
花了近两天的时间才搞清原因,设置日期失败是由于没有正确的读RTC日期和时间所致:
F4 的RTC 必须先读时间,然后再读日期。一旦读了时间,必须紧接着再读日期,否则后面的写日期会出错的。 因为 RTC_GetTime 会导致 RTC停止计时,直到RTC_GetDate 才恢复计时。
而我的读RTC代码顺序是:
  RTC_GetDate
   RTC_GetTime
   因此会出现日期设置失败。
  比较有趣的是,如果你用Debug跟踪调试写日期的函数 RTC_SetDate,而且打开了RTC寄存器的监视串口,RTC_SetDate函数执行又会是成功的。连续执行就不可以。
   其原因是,Debug 程序需要读RTC的内容,他的读RTC操作,使得逻辑恢复正常。
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

145

主题

368

帖子

0

粉丝