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

STM32F1xx通过stm32cubeMX配置RTC心得

[复制链接]
囧囧 发布时间:2016-11-22 17:23
F1xx的RTC只是一个简单的32位计数器,其他系列的则是比较正统的RTC了;
1 J; z3 ?) P" g  W- f! z在使用STM32CubeMX配置RTC过程中遇到几个问题。
( E5 K. `: ~  p2 M1、自动配置后,每次上电都会重新初始化时间,所以这里需要自己修改一下初始化配置函数,使用BKP_REG_DR*设置标志位;, \* }' [4 p+ p' K! b8 F" R
2、使用自动配置,初始化时间必须使用RTC_FORMAT_BCD,原因是库函数存在bug,如果使用RTC_FORMAT_BIN,月份配置会出错,比如说11月,配置时会赋值为RTC_MONTH_NOVEMBER,而此宏定义值为0x11,也就是说其十进制值为17,使用HAL_RTC_SetDate时,如果使用RTC_FORMAT_BIN模式会直接赋值而没有转换,导致出现月份配置错误。7 x& y9 Z/ C$ d
3、使用F1的RTC,只能实时记录time,而不能实时记录date,date是在获取时间时(HAL_RTC_GetTime)通过函数RTC_DateUpdate自动更新在ram中的,掉电之后date就没了,所以需要间隔性的去记录当前的date。下次上电时根据BKP_REG的值,决定是否读取记录的date值,赋值给hrtc结构体DateToUpdate成员,这样日期也就不会丢失了。
+ {  H" b+ a$ `; {9 P/ G- I$ c0 ?, l" j3 \

评分

参与人数 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
2 z' l2 {! C0 R1 x  o- v+ z% }4 Y, F  F楼主,我也是用cubeMX遇到了这个坑,105的板子,掉电后时间正常,年月日恢复为系统默认配置!像你说的方法 ...
/ h/ @+ }) D0 V9 o8 a' E! J, K
如果不增加硬件成本添加RTC芯片的话,只能按照楼主说的第3点那个方法,自己在备份寄存器中存过了多少秒,然后换算成过了几天,依此类推,再自己规定一个开始的日期就可以换算了。1 a% v" F' H8 G! n5 x) b
比如说我规定开始日期是2017年2月25日上午8点整,每过一秒往备份寄存器中加一,如果累计读取备份寄存器出来过了 86400秒,那么现在的时间不就是2017年2月26日上午8点整了吗
我不怕 回答时间:2017-3-6 10:42:00
奏奏奏 发表于 2017-2-25 08:52$ d. d4 q: L! K, x4 n9 g( n) o
如果不增加硬件成本添加RTC芯片的话,只能按照楼主说的第3点那个方法,自己在备份寄存器中存过了多少秒, ...

* G, g6 j& }8 O& ~8 X0 ]谢谢!我后来换了一种方法,直接采用原子例程中的设置和获取时间函数,不采用cubeMX生成的相关时间函数,其余不做变化!
weson 回答时间:2017-5-17 16:52:34
我不怕2106 发表于 2017-3-6 10:422 q9 I6 @8 Y/ {! d0 D
谢谢!我后来换了一种方法,直接采用原子例程中的设置和获取时间函数,不采用cubeMX生成的相关时间函数, ...
* f) n2 u7 O3 t% x5 [1 R' i2 K
你好!更换CUBE库遇到同样问题,要怎么处理呢?
zbber 回答时间:2017-5-17 21:18:23

; V, @4 s+ S1 N* Q+ x7 Y4 X7 B,楼主厉害,支持楼主
- A0 @% a; L0 r; w8 U( Q
epochal 回答时间:2017-5-18 07:31:15
经验分享,值得点赞!
lewuyouc 回答时间:2017-9-30 17:25:36
楼主的第三观点在超过一天时,该方法不好用呀,官方有没有什么好的解决方法?现在断电后重启后,时间能正确运行,但是日期恢复到默认值,有没有什么好的办法能正确运行日期和时间?
epochal 回答时间:2017-9-30 20:28:27
学习了!
12下一页

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版