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

STM32F1xx通过stm32cubeMX配置RTC心得

[复制链接]
囧囧 发布时间:2016-11-22 17:23
F1xx的RTC只是一个简单的32位计数器,其他系列的则是比较正统的RTC了;$ a; L- l% {7 ~
在使用STM32CubeMX配置RTC过程中遇到几个问题。
  Y( Z/ G$ c! R+ y; E+ y$ Q% I8 n1、自动配置后,每次上电都会重新初始化时间,所以这里需要自己修改一下初始化配置函数,使用BKP_REG_DR*设置标志位;
' F, F) R& d: Q' s2、使用自动配置,初始化时间必须使用RTC_FORMAT_BCD,原因是库函数存在bug,如果使用RTC_FORMAT_BIN,月份配置会出错,比如说11月,配置时会赋值为RTC_MONTH_NOVEMBER,而此宏定义值为0x11,也就是说其十进制值为17,使用HAL_RTC_SetDate时,如果使用RTC_FORMAT_BIN模式会直接赋值而没有转换,导致出现月份配置错误。
: K7 F# K# F0 R  R8 D& j0 n3、使用F1的RTC,只能实时记录time,而不能实时记录date,date是在获取时间时(HAL_RTC_GetTime)通过函数RTC_DateUpdate自动更新在ram中的,掉电之后date就没了,所以需要间隔性的去记录当前的date。下次上电时根据BKP_REG的值,决定是否读取记录的date值,赋值给hrtc结构体DateToUpdate成员,这样日期也就不会丢失了。- N: F: X) d2 W. B: J, \7 I0 I6 ]' e
6 j2 f* D2 C- c  H  L1 M; ?

评分

参与人数 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
* k+ j* O" A6 M  e) j* p楼主,我也是用cubeMX遇到了这个坑,105的板子,掉电后时间正常,年月日恢复为系统默认配置!像你说的方法 ...

8 h) F/ r$ r! l如果不增加硬件成本添加RTC芯片的话,只能按照楼主说的第3点那个方法,自己在备份寄存器中存过了多少秒,然后换算成过了几天,依此类推,再自己规定一个开始的日期就可以换算了。
0 Z5 ~3 |" F; _( Q$ ]# }& Q4 f比如说我规定开始日期是2017年2月25日上午8点整,每过一秒往备份寄存器中加一,如果累计读取备份寄存器出来过了 86400秒,那么现在的时间不就是2017年2月26日上午8点整了吗
我不怕 回答时间:2017-3-6 10:42:00
奏奏奏 发表于 2017-2-25 08:529 E2 z* W& `+ V, X1 C$ Y
如果不增加硬件成本添加RTC芯片的话,只能按照楼主说的第3点那个方法,自己在备份寄存器中存过了多少秒, ...
2 p9 {* u: [6 ]1 u$ Y2 |  k
谢谢!我后来换了一种方法,直接采用原子例程中的设置和获取时间函数,不采用cubeMX生成的相关时间函数,其余不做变化!
weson 回答时间:2017-5-17 16:52:34
我不怕2106 发表于 2017-3-6 10:42" @1 Z- q" v0 H
谢谢!我后来换了一种方法,直接采用原子例程中的设置和获取时间函数,不采用cubeMX生成的相关时间函数, ...

' j) r4 E- Q8 H7 Z# C  S你好!更换CUBE库遇到同样问题,要怎么处理呢?
zbber 回答时间:2017-5-17 21:18:23

/ O5 P. ^  S# k" }: X; W,楼主厉害,支持楼主
5 D5 u7 Y& j% {/ K* |
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 手机版