硬汉嵌入式论坛

 找回密码
 立即注册
查看: 536|回复: 10
收起左侧

[RCC] STM32H723VGT6 RTC時間不會正確進位疑問

[复制链接]

1

主题

4

回帖

7

积分

新手上路

积分
7
发表于 2025-2-11 08:36:36 | 显示全部楼层 |阅读模式
本帖最后由 wahaha829 于 2025-2-11 08:54 编辑

大家好
我最近在使用STM32H723VGT6開發板上的RTC功能

但發現一個問題 那就是時間過了晚上12點 預期時間應該是從23:59:59變成00:00:00
但實際上"時"跟"日"沒有自動進位 串口打印出的結果是下圖這樣
Screenshot 2025-02-11 085036.png


目前cubemx裡的RTC的配置如下
Screenshot 2025-02-11 085210.png
Screenshot 2025-02-11 085235.png


打印時間日期
Screenshot 2025-02-11 085313.png


請教各位前輩大神指點一下可能原因在哪
這問題已經困擾我好多天
看了好多帖子還是找不出原因
拜託了!!

回复

使用道具 举报

3

主题

11

回帖

20

积分

新手上路

积分
20
发表于 2025-2-11 10:20:13 | 显示全部楼层
数据做取余就好,没必要纠结这个。
回复

使用道具 举报

6

主题

231

回帖

249

积分

高级会员

积分
249
发表于 2025-2-11 11:44:00 | 显示全部楼层
数据有两种格式 ,你现在用的是BIN格式,还有一种格式,具体F12进去换一下。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2025-2-11 12:46:12 | 显示全部楼层
配置看着都没问题,方便的话,生成的完整配置代码看下
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2025-2-11 13:13:25 | 显示全部楼层
eric2013 发表于 2025-2-11 12:46
配置看着都没问题,方便的话,生成的完整配置代码看下

附件是cubemx產生的rtc.c rtc.c (4.14 KB, 下载次数: 5)

我有修改裡面的Check_RTC_BKUP 其餘都沒改
應該是不影響我獲取RTC時間才對?
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2025-2-11 13:27:16 | 显示全部楼层
fxyc87 发表于 2025-2-11 11:44
数据有两种格式 ,你现在用的是BIN格式,还有一种格式,具体F12进去换一下。

有想過會不會是格式ˋ的問題 所以我試了這幾種組合
設置時用BCD,讀取用BCD
設置時用BCD,讀取用BIN
設置時用BIN,讀取用BCD
設置時用BIN,讀取用BIN
但不論是哪一種結果都一樣 可以正常顯示年月日時分秒
就是過了晚上12點 小時從23->24,日期沒變
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2025-2-12 07:20:19 | 显示全部楼层
wahaha829 发表于 2025-2-11 13:13
附件是cubemx產生的rtc.c

我有修改裡面的Check_RTC_BKUP 其餘都沒改

TIME的完整参数成员都配置了

    time.Hours = _hour;
    time.Minutes = _min;
    time.Seconds = _sec;
    time.TimeFormat = RTC_HOURFORMAT12_AM;
    time.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
    time.StoreOperation = RTC_STOREOPERATION_RESET;
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2025-2-12 08:15:54 | 显示全部楼层
更新一下
後來把接到VBAT的RTC電池拔掉以後
發現跨日的時間日期都可以正常進位
電池裝回去 代碼沒更動重新燒錄一次 時間日期也都正常了
還是不清楚到底發生了什麼事
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2025-2-12 09:31:26 | 显示全部楼层
wahaha829 发表于 2025-2-12 08:15
更新一下
後來把接到VBAT的RTC電池拔掉以後
發現跨日的時間日期都可以正常進位

有这种情况,拔掉后,重新执行一次时间配置。
回复

使用道具 举报

1

主题

4

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2025-2-14 15:10:53 | 显示全部楼层
eric2013 发表于 2025-2-12 09:31
有这种情况,拔掉后,重新执行一次时间配置。

恩恩好的感謝 下次遇到的話再試試
目前都正常了!
回复

使用道具 举报

2

主题

3

回帖

9

积分

新手上路

积分
9
发表于 2025-4-11 00:45:16 | 显示全部楼层
我之前也是有问题,后来发现是因为获取和设置格式的问题,最好都选择bin格式,这个是十进制,方便管理。如果是BCD格式需要转换一下。如果获取或者设置时间日期格式不一致就会出现计时大过合理最大数后不进位。例如这样获取时间日期(错误设置例子):
HAL_RTC_GetTime(&hrtc, &time,RTC_FORMAT_BCD );  
HAL_RTC_GetDate(&hrtc, &datebuff, RTC_FORMAT_BIN);
会出现获取时间这样:23:61:80

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-4-26 01:38 , Processed in 0.616455 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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