打印

GD32F4系列 RTC使用外部低速晶振配置时钟,时间快慢问题

[复制链接]
2071|19
手机看帖
扫描二维码
随时随地手机跟帖
楼主
AnkerSong| | 2022-2-21 10:06 | 显示全部楼层 回帖奖励 |倒序浏览
所有mcu的rtc时钟都是需要校准的。
手册里有描述。

使用特权

评论回复
沙发
AnkerSong| | 2022-2-21 10:37 | 显示全部楼层
你可以看一下rtc_coarse_calibration_config()函数
按照你每天多5s的速度算,粗校准寄存器RTC_COSC应该配置为:COSD=1,COSS=0x1D

使用特权

评论回复
板凳
AnkerSong| | 2022-2-21 17:10 | 显示全部楼层
紫气东升 发表于 2022-2-21 15:09
好的,多谢指点,我试试看。这个函数是在启动外部晶振后开始用的吧?
rcu_osci_on(RCU_LXTAL);  //使用外 ...

可以。
需要注意的是,校准只是粗校。
晶振的频率会随着温度的变化而变化,也就是说如果外界温度变化,rtc时钟还是会有一定量的漂移。
如果需要非常精确的时间,建议使用温补晶振。

使用特权

评论回复
地板
AnkerSong| | 2022-2-23 10:53 | 显示全部楼层
本帖最后由 AnkerSong 于 2022-2-23 11:04 编辑
紫气东升 发表于 2022-2-23 09:20
既然理论上配置prescaler_s = 0xFF;为1HZ(1S)。实际上比1HZ大(也就是大于1S)。那我如果配置prescaler_s = 0 ...

不行,粗校只有5位,上限就是0x1F。多看看手册呀兄弟。
————————————————
另外,我刚又看了一遍手册,一次粗校只持续64min,属于暴力校准。
你还是试一下数字平滑校准吧,具体的手册里有写,比较复杂,你研究研究~

使用特权

评论回复
5
AnkerSong| | 2022-2-23 13:46 | 显示全部楼层
紫气东升 发表于 2022-2-23 11:44
好的,我再看看。只不过手册我也看几遍了,看得不是太明白

直接看函数能简单一点。
rtc_smooth_calibration_config(RTC_CALIBRATION_WINDOW_32S,RTC_CALIBRATION_PLUS_RESET,0x3C);
然后你根据函数说明测算修改吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则