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

STM32F1xx通过stm32cubeMX配置RTC心得

[复制链接]
囧囧 发布时间:2016-11-22 17:23
F1xx的RTC只是一个简单的32位计数器,其他系列的则是比较正统的RTC了;4 c! E8 h7 s" w; Z& Q5 d
在使用STM32CubeMX配置RTC过程中遇到几个问题。
4 r& H( y! M+ d0 L( H! A0 |6 f( l0 B1、自动配置后,每次上电都会重新初始化时间,所以这里需要自己修改一下初始化配置函数,使用BKP_REG_DR*设置标志位;, T" s  k6 I4 C! {
2、使用自动配置,初始化时间必须使用RTC_FORMAT_BCD,原因是库函数存在bug,如果使用RTC_FORMAT_BIN,月份配置会出错,比如说11月,配置时会赋值为RTC_MONTH_NOVEMBER,而此宏定义值为0x11,也就是说其十进制值为17,使用HAL_RTC_SetDate时,如果使用RTC_FORMAT_BIN模式会直接赋值而没有转换,导致出现月份配置错误。7 p; f3 V/ L! S$ S& Y. I
3、使用F1的RTC,只能实时记录time,而不能实时记录date,date是在获取时间时(HAL_RTC_GetTime)通过函数RTC_DateUpdate自动更新在ram中的,掉电之后date就没了,所以需要间隔性的去记录当前的date。下次上电时根据BKP_REG的值,决定是否读取记录的date值,赋值给hrtc结构体DateToUpdate成员,这样日期也就不会丢失了。
$ {$ h9 p: X5 b1 `( }# v. v' ]+ j% j7 _. _

评分

参与人数 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
( d$ t, d9 X! K, y! |楼主,我也是用cubeMX遇到了这个坑,105的板子,掉电后时间正常,年月日恢复为系统默认配置!像你说的方法 ...
& u. R" j" ?' A) e. P
如果不增加硬件成本添加RTC芯片的话,只能按照楼主说的第3点那个方法,自己在备份寄存器中存过了多少秒,然后换算成过了几天,依此类推,再自己规定一个开始的日期就可以换算了。$ l$ Q! H( b9 k8 |- P* M, b( T, ^5 ^3 M
比如说我规定开始日期是2017年2月25日上午8点整,每过一秒往备份寄存器中加一,如果累计读取备份寄存器出来过了 86400秒,那么现在的时间不就是2017年2月26日上午8点整了吗
我不怕 回答时间:2017-3-6 10:42:00
奏奏奏 发表于 2017-2-25 08:52
: K/ K+ T1 z8 L1 [- h3 a如果不增加硬件成本添加RTC芯片的话,只能按照楼主说的第3点那个方法,自己在备份寄存器中存过了多少秒, ...

' f% N9 ]5 L( ?1 j. W" l" f: h谢谢!我后来换了一种方法,直接采用原子例程中的设置和获取时间函数,不采用cubeMX生成的相关时间函数,其余不做变化!
weson 回答时间:2017-5-17 16:52:34
我不怕2106 发表于 2017-3-6 10:42
5 f" g$ h9 P' ~; v$ _  f: x谢谢!我后来换了一种方法,直接采用原子例程中的设置和获取时间函数,不采用cubeMX生成的相关时间函数, ...

5 y+ b7 C: B9 E8 W你好!更换CUBE库遇到同样问题,要怎么处理呢?
zbber 回答时间:2017-5-17 21:18:23
( d9 {; w( o. x8 t1 T
,楼主厉害,支持楼主- C. _6 j7 x7 _
epochal 回答时间:2017-5-18 07:31:15
经验分享,值得点赞!
lewuyouc 回答时间:2017-9-30 17:25:36
楼主的第三观点在超过一天时,该方法不好用呀,官方有没有什么好的解决方法?现在断电后重启后,时间能正确运行,但是日期恢复到默认值,有没有什么好的办法能正确运行日期和时间?
epochal 回答时间:2017-9-30 20:28:27
学习了!
12下一页

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版