在做万年历时, 时间为什么不能改为后面的那个时间(更改的时间) 在执行完BKP_WriteBackupRegister(BKP_DR1, 0X5051); 之后BKP_DR1为什么不是0x5051,而是原来的0x5050
int main(void)
{
u8 key,key1[2],key2=1;
u8 t=0;
SystemInit();
delay_init(72); //延时初始化
/*省略了一些程序*/
///////////////////////////////一开始设置的时间
timer1.w_year1=2012;
timer1.w_month1=10;
timer1.w_date1=13;
timer1.hour1=23;
timer1.min1=55;
timer1.sec1=50;
RTC_Init();
delay_nus(10);
///////////////////////////////更改的时间
timer1.w_year1=2013;
timer1.w_month1=10;
timer1.w_date1=5;
timer1.hour1=16;
timer1.min1=50;
timer1.sec1=35;
BKP_WriteBackupRegister(BKP_DR1, 0X5051);
RTC_Init();
/*省略了一些程序*/
}
u8 RTC_Init(void)
{
//检查是不是第一次配置时钟
u8 temp=0;
RTC_NVIC_Config();
//if(BKP->DR1!=0X5050)//第一次配置
if (BKP_ReadBackupRegister(BKP_DR1) != 0x5050) //从指定的后备寄存器中读出数据:读出了与写入的指定数据不相乎
{
/*省略了一些程序*/
RTC_Set(timer1.w_year1,timer1.w_month1,timer1.w_date1,timer1.hour1,timer1.min1,timer1.sec1); //设置时间
BKP_WriteBackupRegister(BKP_DR1, 0X5050); //向指定的后备寄存器中写入用户程序数据
}
else//系统继续计时
{
/*省略了一些程序*/
}
} |