比如:在2018-01-01 23:29:59变为2018-01-02 00:00:00过程中,可能会出现变成2018-01-01 00:00:00的情况,然后变为2018-01-02 00:00:01,恢复正常。
时间读取函数——
RTC_GetTime(RTC_Format_BIN, &RTC_TimeStructure);
RTC_GetDate(RTC_Format_BIN, &RTC_DateStructure);
经测试,即使连续执行两次,
RTC_GetTime(RTC_Format_BIN, &RTC_TimeStructure1);
RTC_GetDate(RTC_Format_BIN, &RTC_DateStructure1);
RTC_GetTime(RTC_Format_BIN, &RTC_TimeStructure2);
RTC_GetDate(RTC_Format_BIN, &RTC_DateStructure2);
并且判断二者一致再取数,还是会出现上述异常。
请问大家有没有好的办法?
但是手册上明确写明了这是同步标志,用于处理临界区问题。
因此你调用库的时候,应该是没调用 RTC_WaitForSynchro 这个函数,这是 HAL 库里唯一用到 RSF 位的函数,猜测能解决你的问题
一周热门 更多>