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位,然后映射到这个寄存器上,然后就能取出时间了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。