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

STM32L151 RTC设置问题

[复制链接]
Topspeed_1960 提问时间:2024-2-26 12:24 / 未解决

我们公司最近在使用STM32L151,我们使用HAL。 发先使用下面的命令设置RTC之后,读出来的时间慢了了一个小时。

HAL_RTC_SetTime(&hrtc,&sTime,RTC_FORMAT_BIN);

HAL_RTC_SetDate(&hrtc,&sDate,RTC_FORMAT_BIN);

下面的是我的RTC配置

image.png

我换了同一批次的芯片测试,结果一样。

请问这是什么原因,我怎么解决?

收藏 评论6 发布时间:2024-2-26 12:24

举报

6个回答
xmshao 回答时间:2024-2-26 13:50:06
虽然没看懂你所说的慢了1个小时的前提是什么,但基本可以肯定这个现象跟芯片没啥关系。


多长时间读取后慢1个小时?还是任何时候读取时总是固定慢1个小时?


看看是否有配置方面原因,再就是注意先读时间后读日期的顺序。
Topspeed_1960 回答时间:2024-2-26 15:37:36

xmshao 发表于 2024-2-26 13:50
虽然没看懂你所说的慢了1个小时的前提是什么,但基本可以肯定这个现象跟芯片没啥关系。</p>
<p>

我读取的顺序是这样的:》

HAL_RTC_GetTime(&hrtc, &curTime, RTC_FORMAT_BIN);

HAL_RTC_GetDate(&hrtc, &curDate, RTC_FORMAT_BIN);

不是过一段时间慢了一小时,是写入时间后立即回读,年月日分秒都是正确的。只有时间慢了了一个小时。

比如:我试图设置RTC时间24-02-25 14:20:25:

sDate.Year=24; sDate.Month=02; sDate.Date=25;

sTime.Hours= 14; sTime.Minutes=20; sTime.Seconds=25;

HAL_RTC_SetTime(&hrtc,&sTime,RTC_FORMAT_BIN); HAL_RTC_SetDate(&hrtc,&sDate,RTC_FORMAT_BIN);

然后我立即回读

HAL_RTC_GetTime(&hrtc, &curTime, RTC_FORMAT_BIN);

HAL_RTC_GetDate(&hrtc, &curDate, RTC_FORMAT_BIN);

获得的时间是:

24-02-25 13:20:25

而且RTC在正常走时,我可以连续读取RTC,看到时间在正常变化。只是此后每次读出来的时间,都是慢了一个小时。

butterflyspring 回答时间:2024-2-26 16:19:43
可以在调试模式下看看寄存器的值实际是多少 ?

小时数值不会变化那么快的。
Topspeed_1960 回答时间:2024-2-26 21:40:31

butterflyspring 发表于 2024-2-26 16:19
可以在调试模式下看看寄存器的值实际是多少 ?</p>
<p>小时数值不会变化那么快的。

我也感觉不是走时问题,一定是设置的问题。可以我查了设置,没有找到问题所在。刚刚我用开发板测试了同样的功能,没有前述的慢一小时的问题。

我去跟踪一下看看

Topspeed_1960 回答时间:2024-2-27 22:11:57

Topspeed_1960 发表于 2024-2-26 21:40
我也感觉不是走时问题,一定是设置的问题。可以我查了设置,没有找到问题所在。刚刚我用开发板测试了 ...

[md]有点懵了:

跟踪寄存器的结果,写入的数据和寄存器得到的数据不一样。

image.png

要写的是21:54:43

写入之后寄存器是这个样子:

image.png

我实在找不到我的设置哪里出问题了(我没有做任何关于夏时制的设置)。

image.png
Topspeed_1960 回答时间:2024-2-28 00:20:43

Topspeed_1960 发表于 2024-2-27 22:11
有点懵了:</p>
<p>跟踪寄存器的结果,写入的数据和寄存器得到的数据不一样。

[md]谢谢各位大侠的关心和回复,问题已经解决,确实是代码问题。惭愧

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版