初级会员

- 积分
- 57
- 金钱
- 57
- 注册时间
- 2016-8-25
- 在线时间
- 8 小时
|
1金钱
if (BKP_ReadBackupRegister(BKP_DR1) != 0x5050)
{
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
PWR_BackupAccessCmd(ENABLE);
BKP_DeInit();
RCC_LSEConfig(RCC_LSE_ON);
while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET)
{
temp++;
delay_ms(10);
}
if(temp>=250)return 1;
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);
RCC_RTCCLKCmd(ENABLE);
RTC_WaitForLastTask();
RTC_WaitForSynchro();
RTC_ITConfig(RTC_IT_SEC, ENABLE);
RTC_WaitForLastTask();
RTC_EnterConfigMode();
RTC_SetPrescaler(32767);
RTC_WaitForLastTask();
RTC_Set(2009,12,2,10,0,55);
RTC_ExitConfigMode();
BKP_WriteBackupRegister(BKP_DR1, 0X5050);
}
else
{
RTC_WaitForSynchro();
RTC_ITConfig(RTC_IT_SEC, ENABLE);
RTC_WaitForLastTask();
}
RTC_NVIC_Config();
RTC_Get();
return 0;
上面红色字体部分,为什么不用进行取消RTC和备份区域写操作保护,设置秒中断不是要访问RTC寄存器的吗,
但是对于已经设置过时间的,刚上电后,就运行else里的程序,不是没有取消写保护吗。
|
|