STM32F4 RTC时间设置完之后读取异常

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;
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值