我做了个RTC。。初始化时间然后查询出来都是正常的。。但是设置的时候代码如下:
void RTC_WaitForLastTask(void)
{
/* Loop until RTOFF flag is set */
while ((RTC->CRL & RTC_FLAG_RTOFF) == (u16)RESET)
{
}
}
void Time_Adjust(void)
{
/* Wait until last write operation on RTC registers has finished */
RTC_WaitForLastTask();
/* Change the current time */
RTC_SetCounter(Time_Regulate());
//Time_Regulate()算出计数值
/* Wait until last write operation on RTC registers has finished */
RTC_WaitForLastTask();
}
结果设置的时候一直停在: while ((RTC->CRL & RTC_FLAG_RTOFF) == (u16)RESET)
然后我直接用RTC_SetCounter(Time_Regulate());设置时间,不加前面的RTC_WaitForLastTask();
结果出来是日期设置对了。 。时间还是初始化的时间跑出来的结果。。。
求高手OR版主指点。。。。。 |