F407读取RTC时间的一种简单方法

2019-07-21 04:35发布

昨天看了原子哥的程序,每次读取时间都要进行移位什么的 比较麻烦,看看我的吧 
[mw_shl_code=c,true]typedef struct { vu8 ss:8; vu8 mm:8; vu8 hh:6; vu8 PM:2; vu8 unuse:8; }Time_Typedef; typedef struct { vu8 dd:8; vu8 mm:5; vu8 xq:3; vu8 yy:8; vu8 unuse:8; }Data_Typedef; #define Time ((Time_Typedef *)(0x40002800)) #define Data ((Data_Typedef *)(0x40002804))[/mw_shl_code] 这样定义以后,就跟操作寄存器一样,直接读出来年月日时分秒,比移位简单多了。哈哈
unuse是RTC->TR跟RTC->DR俩寄存器中没有用到的位,这用来填充一下到32位,然后映射到这个寄存器上,然后就能取出时间了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
simplelifeNick
1楼-- · 2019-07-21 06:15
灵活用struct的位分配,好啊,效率高
三叶草
2楼-- · 2019-07-21 06:58
你确定这样可以用在stm32的RTC上?
正点原子
3楼-- · 2019-07-21 11:50
不错,精简。
比我写的好,学习了。
Theone
4楼-- · 2019-07-21 15:14
回复【4楼】正点原子:
---------------------------------
原子哥放到教程里边 哈哈哈
Theone
5楼-- · 2019-07-21 17:41
 精彩回答 2  元偷偷看……
正点原子
6楼-- · 2019-07-21 18:51
回复【5楼】Theone:
---------------------------------
有时间改过来。

一周热门 更多>