中级会员
 
- 积分
- 277
- 金钱
- 277
- 注册时间
- 2020-1-19
- 在线时间
- 94 小时
|
1金钱
本帖最后由 Soleil 于 2022-1-10 16:24 编辑
stm32L051C8T6RTC分频配置
- hrtc.Init.AsynchPrediv = 127;
- hrtc.Init.SynchPrediv = 255;
复制代码 获取时间函数
- void GetTime(void)
- {
- RTC_TimeTypeDef Time;
- RTC_DateTypeDef Date;
- HAL_RTC_GetTime(&hrtc, &Time, RTC_FORMAT_BIN);
- HAL_RTC_GetDate(&hrtc, &Date, RTC_FORMAT_BIN);
- printf("[20%d-%d-%d-%d ", Date.Year, Date.Month, Date.Date, Date.WeekDay);
- printf("%d:%d:%d:%d]", Time.Hours, Time.Minutes, Time.Seconds,Time.SubSeconds);
- printf("\r\n");
- }
复制代码 然后在主循环中每延时一秒调用,发现打印出的亚秒Time.SubSeconds是从255依次往下递减到0以后再重新装载255再次递减,且重新装载时会导致跳秒即秒数增加一秒,从而增加误差。
现在我想隔一段时间对时间进行重置,但是发现亚秒寄存器好像不能被设置,请问有没有什么办法重置这个亚秒数呢
|
|