STM32F4 RTC时间设置完之后读取异常,不能正确读取时间和日期,后来RTC_GetTime()和RTC_GetDate()顺序换了一下,要先读时间再读日期,才OK!
void set_time(struct time_st *t)//设置时间
{
RTC_DateTypeDef date_value;
RTC_TimeTypeDef time_value;
date_value.RTC_Date = t->D;
date_value.RTC_Month = t->M;
date_value.RTC_WeekDay = t->W;
date_value.RTC_Year = t->Y;
RTC_SetDate(RTC_Format_BIN,&date_value);//设置日期
time_value.RTC_H12 = RTC_H12_AM;
time_value.RTC_Hours = t->h;
time_value.RTC_Minutes = t->m;
time_value.RTC_Seconds = t->s;
RTC_SetTime(RTC_Format_BIN,&time_value);//设置时间
}
void get_time(struct time_st *t)//获取时间
{
RTC_DateTypeDef date_value;
RTC_TimeTypeDef time_value;
RTC_GetTime(RTC_Format_BIN,&time_value);//获取时间
RTC_GetDate(RTC_Format_BIN,&date_value);//获取日期
t->Y = date_value.RTC_Year;
t->M = date_value.RTC_Month;
t->D = date_value.RTC_Date;
t->W = date_value.RTC_WeekDay;
t->h = time_value.RTC_Hours;
t->m = time_value.RTC_Minutes;
t->s = time_value.RTC_Seconds;
}