搜索
bottom↓
回复: 12

STM32 RTC日期进位不准确,1月31日变成1月16日

[复制链接]

出0入0汤圆

发表于 2017-1-18 00:25:11 | 显示全部楼层 |阅读模式
本帖最后由 zhoujun19860612 于 2017-1-18 22:17 编辑

用STM32L052的RTC,时间走的都正常,平时日期显示也没问题,就是要加月份时就不太对,
从1月31日居然编程了1月16日,如下是串口将日期以16进制发送出来的,
年 月 日 时 分 秒
11 01 1F 17 3B 3B 0D 0A
11 01 10 00 00 00 0D 0A

还有设置1月32日,居然也没问题,然后加1天后变成了1月33日,奇怪了。
年 月 日 时 分 秒
11 01 20 17 3B 3B 0D 0A
11 01 21 00 00 00 0D 0A

不知谁在用STM32的RTC,指导下,谢谢

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2017-1-18 08:48:56 | 显示全部楼层
设置的时候是什么进制?

出0入0汤圆

发表于 2017-1-18 09:59:17 | 显示全部楼层
我记得有一个毛病是读日期和读时间语句的顺序问题,忘记先后顺序了,你可以更改下顺序试试。

出0入0汤圆

 楼主| 发表于 2017-1-18 20:42:53 | 显示全部楼层
niechao15 发表于 2017-1-18 09:59
我记得有一个毛病是读日期和读时间语句的顺序问题,忘记先后顺序了,你可以更改下顺序试试。 ...

先读时间再读日期,这个知道,反过来的话日期就更不正常了

出0入0汤圆

 楼主| 发表于 2017-1-18 20:44:59 | 显示全部楼层
cqsgcqsg 发表于 2017-1-18 08:48
设置的时候是什么进制?

读写日期用的是RTC_Format_BCD进制,之前用RTC_Format_BIN进制的话就更不对了。
时间用的RTC_Format_BIN进制,目前都挺正常的。


RTC_GetTime(RTC_Format_BIN, &RTC_TimeStructure);                //得先读时间,再读日期
RTC_GetDate(RTC_Format_BCD, &RTC_DateStructure);

出0入0汤圆

 楼主| 发表于 2017-1-18 22:43:24 | 显示全部楼层
cqsgcqsg 发表于 2017-1-18 08:48
设置的时候是什么进制?

今天把设置和读取日期的进制从RTC_Format_BCD改成了RTC_Format_BIN,就正常了。测试了下,17年每个月进位都正常,年进位也正常

RTC_Format_BCD和RTC_Format_BIN这两种格式为什么有区别,为什么RTC_Format_BCD会出现问题知道吗?谢谢

出0入0汤圆

发表于 2017-1-18 23:30:21 | 显示全部楼层
zhoujun19860612 发表于 2017-1-18 22:43
今天把设置和读取日期的进制从RTC_Format_BCD改成了RTC_Format_BIN,就正常了。测试了下,17年每个月进位 ...

配置的时候,时间和日期是什么格式呢?

出0入0汤圆

 楼主| 发表于 2017-1-19 20:13:43 | 显示全部楼层
qiuchen 发表于 2017-1-18 23:30
配置的时候,时间和日期是什么格式呢?

之前日期配置和读写都是RTC_Format_BCD,时间是RTC_Format_BIN,时间读写都正常,日期在月份进位上会出问题。

现在日期和时间的配置都改成了RTC_Format_BIN,目前跑着都正常。

只是一天下来会慢2、3秒,这是RTC的通病。

出0入0汤圆

发表于 2017-1-20 11:28:26 | 显示全部楼层
zhoujun19860612 发表于 2017-1-19 20:13
之前日期配置和读写都是RTC_Format_BCD,时间是RTC_Format_BIN,时间读写都正常,日期在月份进位上会出问 ...

这样啊,明白了。
时间慢和晶振有关吧。

出0入0汤圆

 楼主| 发表于 2017-1-21 07:54:24 | 显示全部楼层
qiuchen 发表于 2017-1-20 11:28
这样啊,明白了。
时间慢和晶振有关吧。

恩,说要6P的晶振

出0入0汤圆

发表于 2017-1-22 10:05:33 | 显示全部楼层

用5ppm的晶振吧,6p指的是匹配电容,和精度关系不是特别大。

出0入0汤圆

发表于 2017-1-23 12:02:35 | 显示全部楼层
楼主用的是cube库吧,stm32f4的rtc秒精度做的很高的,已经有了很大的改进了

出200入2554汤圆

发表于 2017-1-26 21:10:15 来自手机 | 显示全部楼层
建议改改标题吧,这问题就是库的问题(硬件层只有个32位s计数器,其余都是算出来的),我看了还以为是硬件有bug呢
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 03:46

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表