-
CW32l083 RTC 偏差值
rtc运行一晚上时间比实际实际快了十多分钟,程序运行逻辑,程序运行后5分钟进入休眠模式,10分钟后rtc唤醒并打印当前时间请教出现这种情况的原因是什么rtc配置voidmy_rtc_Init(void){RTC_InitTypeDefRTC_InitStruct={0};RTC_InitStruct.DateStruct.Day=0x20;//设置日期,DAY、MONTH、YEAR必须为BCD方式,星期为0~6,代表星期日,星期一至星期六RTC_InitStruct.DateStruct.Month=RTC_Month_March;RTC_InitStruct.DateStruct.Week=RTC_Weekday_Wednesday;RTC_InitStruct.DateStruct.Year=0x24;RTC_InitStruct.TimeStruct.Hour=0x09;//设置时间,HOUR、MINIUTE、SECOND必须为BCD方式,用户须保证HOUR、AMPM、H24之间的关联正确性RTC_InitStruct.TimeStruct.Minute=0x09;RTC_InitStruct.TimeStruct.Second=0x00;RTC_InitStruct.TimeStruct.AMPM=0;RTC_InitStruct.TimeStruct.H24=1;RTC_InitStruct.RTC_ClockSource=RTC_RTCCLK_FROM_LSI;RTC_Init(&RTC_InitStruct);//用户需选定需要使用的时钟源}/*设置时钟*/unsignedcharat_cmd_setrtc(Timestamptm){RTC_DateTypeDefRTC_DateStruct={0};RTC_TimeTypeDefRTC_TimeStruct={0};RTC_DateStruct.Year=HexToBcd((unsignedchar)tm.year);RTC_DateStruct.Month=HexToBcd((unsignedchar)tm.month);RTC_DateStruct.Day=HexToBcd((unsignedchar)tm.day);RTC_DateStruct.Week=HexToBcd((unsignedchar)tm.week);RTC_TimeStruct.Hour=HexToBcd((unsignedchar)tm.hour);RTC_TimeStruct.Minute=HexToBcd((unsignedchar)tm.minute);RTC_TimeStruct.Second=HexToBcd((unsignedchar)tm.second);RTC_TimeStruct.AMPM=0;RTC_TimeStruct.H24=1;RTC_SetTime(&RTC_TimeStruct);RTC_SetDate(&RTC_DateStruct);return0;}uint8_t*WeekdayStr[7]={"SUN","MON","TUE","WED","THU","FRI","SAT"};voidshowrtctime(void){charout[20];RTC_TimeTypeDefRTC_TimeStruct={0};RTC_DateTypeDefRTC_DateStruct={0};RTC
2024-03-20 0