
我们公司最近在使用STM32L151,我们使用HAL。 发先使用下面的命令设置RTC之后,读出来的时间慢了了一个小时。 HAL_RTC_SetTime(&hrtc,&sTime,RTC_FORMAT_BIN); HAL_RTC_SetDate(&hrtc,&sDate,RTC_FORMAT_BIN); 下面的是我的RTC配置 我换了同一批次的芯片测试,结果一样。 请问这是什么原因,我怎么解决? |
看到STM8L152用两个IO用两个或非门检测两个通断,是什么原理?
单片机的AD通道是否具有内部放大功能?
STM32L152配段码屏
ASDFKSDLKFA;LK
使用 X-NUCLEO-SAFEA1运行历程All_Use_Cases所有返回都是48怎么解决?
STM32L151 低功耗运行模式,CPU是处于正常运行状态吗?
串口连续接收同时写入FLASH数据不全
STM32L151RET6 的官方功耗数据是基于内部晶振还是外部晶振
如何利用timer对一个频率变化范围比较广的中低频脉冲信号进行精确脉冲长度/周期/频率测定
多路ADC使用DMA模式有没有教程呀,芯片STM32L151
多长时间读取后慢1个小时?还是任何时候读取时总是固定慢1个小时?
看看是否有配置方面原因,再就是注意先读时间后读日期的顺序。
我读取的顺序是这样的:》
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,看到时间在正常变化。只是此后每次读出来的时间,都是慢了一个小时。
小时数值不会变化那么快的。
我也感觉不是走时问题,一定是设置的问题。可以我查了设置,没有找到问题所在。刚刚我用开发板测试了同样的功能,没有前述的慢一小时的问题。
我去跟踪一下看看
[md]有点懵了:
跟踪寄存器的结果,写入的数据和寄存器得到的数据不一样。
要写的是21:54:43
写入之后寄存器是这个样子:
我实在找不到我的设置哪里出问题了(我没有做任何关于夏时制的设置)。
[md]谢谢各位大侠的关心和回复,问题已经解决,确实是代码问题。惭愧