你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F1xx通过stm32cubeMX配置RTC心得

[复制链接]
囧囧 发布时间:2016-11-22 17:23
F1xx的RTC只是一个简单的32位计数器,其他系列的则是比较正统的RTC了;% B* M, K: {5 ]0 k% x( G+ d+ X8 H
在使用STM32CubeMX配置RTC过程中遇到几个问题。
7 T4 f5 R0 X, N) v& p1、自动配置后,每次上电都会重新初始化时间,所以这里需要自己修改一下初始化配置函数,使用BKP_REG_DR*设置标志位;
# D: {1 i! A4 u% q6 M2、使用自动配置,初始化时间必须使用RTC_FORMAT_BCD,原因是库函数存在bug,如果使用RTC_FORMAT_BIN,月份配置会出错,比如说11月,配置时会赋值为RTC_MONTH_NOVEMBER,而此宏定义值为0x11,也就是说其十进制值为17,使用HAL_RTC_SetDate时,如果使用RTC_FORMAT_BIN模式会直接赋值而没有转换,导致出现月份配置错误。
- n7 ^7 n& r' |; D$ {+ q: s* p3、使用F1的RTC,只能实时记录time,而不能实时记录date,date是在获取时间时(HAL_RTC_GetTime)通过函数RTC_DateUpdate自动更新在ram中的,掉电之后date就没了,所以需要间隔性的去记录当前的date。下次上电时根据BKP_REG的值,决定是否读取记录的date值,赋值给hrtc结构体DateToUpdate成员,这样日期也就不会丢失了。
9 W1 G5 E9 U7 X; n
  {. Z' L! \6 B

评分

参与人数 1 ST金币 +5 收起 理由
zero99 + 5

查看全部评分

1 收藏 3 评论15 发布时间:2016-11-22 17:23

举报

15个回答
zero99 回答时间:2016-11-28 14:08:17
学习了
andypanfan 回答时间:2016-11-29 08:55:36
谢谢!!!非常好!!!!
5265325 回答时间:2016-11-29 09:23:05
五哥1 回答时间:2016-11-29 16:18:32
这个终于找到原因了
xhzheng 回答时间:2016-11-29 17:05:02
感谢分享
5265325 回答时间:2016-11-30 09:20:32
我不怕 回答时间:2017-2-25 07:54:38
楼主,我也是用cubeMX遇到了这个坑,105的板子,掉电后时间正常,年月日恢复为系统默认配置!像你说的方法,定时保存年月日信息,但是停电超过一天就GG了,有没有什么解决方法?
奏奏奏 回答时间:2017-2-25 08:52:45
我不怕2106 发表于 2017-2-25 07:54$ g3 {! c0 k: A4 _' T6 e5 V* K
楼主,我也是用cubeMX遇到了这个坑,105的板子,掉电后时间正常,年月日恢复为系统默认配置!像你说的方法 ...
' Q  c7 D' ]( e
如果不增加硬件成本添加RTC芯片的话,只能按照楼主说的第3点那个方法,自己在备份寄存器中存过了多少秒,然后换算成过了几天,依此类推,再自己规定一个开始的日期就可以换算了。
  o* B5 J- ^  i1 I, j# J2 g; @比如说我规定开始日期是2017年2月25日上午8点整,每过一秒往备份寄存器中加一,如果累计读取备份寄存器出来过了 86400秒,那么现在的时间不就是2017年2月26日上午8点整了吗
我不怕 回答时间:2017-3-6 10:42:00
奏奏奏 发表于 2017-2-25 08:52, `/ u4 A. Y4 Z( v- P& {; f
如果不增加硬件成本添加RTC芯片的话,只能按照楼主说的第3点那个方法,自己在备份寄存器中存过了多少秒, ...

4 \8 O' x* O& A6 z7 n2 q谢谢!我后来换了一种方法,直接采用原子例程中的设置和获取时间函数,不采用cubeMX生成的相关时间函数,其余不做变化!
weson 回答时间:2017-5-17 16:52:34
我不怕2106 发表于 2017-3-6 10:42$ E, M: j6 O* M; E
谢谢!我后来换了一种方法,直接采用原子例程中的设置和获取时间函数,不采用cubeMX生成的相关时间函数, ...
) _# Z, T! P9 v; j" u
你好!更换CUBE库遇到同样问题,要怎么处理呢?
zbber 回答时间:2017-5-17 21:18:23

$ j3 }8 a( F$ m  F$ B* @& y4 h,楼主厉害,支持楼主  w3 F4 F9 a8 d5 O5 c9 N4 p
epochal 回答时间:2017-5-18 07:31:15
经验分享,值得点赞!
lewuyouc 回答时间:2017-9-30 17:25:36
楼主的第三观点在超过一天时,该方法不好用呀,官方有没有什么好的解决方法?现在断电后重启后,时间能正确运行,但是日期恢复到默认值,有没有什么好的办法能正确运行日期和时间?
epochal 回答时间:2017-9-30 20:28:27
学习了!
12下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版