CH32V208WBU6基于CH32V20xEVT\EVT\EXAM\BLE\Peripheral_ETH\APP,調(diào)用RTC_init()函數(shù),會走到temp>=250的判斷里,每次啟動時(shí)都要多耗時(shí)10s~20s,請問這是什么問題?是否可以啟動時(shí)縮短時(shí)間,或者第二次啟動時(shí)縮短RTC_init()時(shí)間,目前我們硬件上是用單獨(dú)的電池給內(nèi)置rtc供電。
u8 RTC_Init(void)
{
? ? u8 temp = 0;
? ? RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
? ? PWR_BackupAccessCmd(ENABLE);
? ? /* Is it the first configuration */
? ? BKP_DeInit();
? ? RCC_LSEConfig(RCC_LSE_ON);
? ? while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET && temp < 250)
? ? {
? ? ? ? ? ? temp++;
? ? ? ? ? ? Delay_Ms(20);
? ? }
? ? if(temp >= 250)
? ? {
? ? ? ? printf("In RTC_Init temp = %d\n", temp);? //==================>會走到這里
? ? return 1;
? ? }
? ? RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);
? ? RCC_RTCCLKCmd(ENABLE);
? ? RTC_WaitForLastTask();
? ? RTC_WaitForSynchro();
? ? // RTC_ITConfig(RTC_IT_ALR, ENABLE);
? ? RTC_ITConfig(RTC_IT_SEC, ENABLE);
? ? RTC_WaitForLastTask();
? ? RTC_EnterConfigMode();
? ? RTC_SetPrescaler(32767);
? ? RTC_WaitForLastTask();
? ? printf("start RTC_Get year to decide if need to do RTC_Set\n");
? ? RTC_Get();
? ? printf("after RTC_Get year \n");
? ? if(calendar.w_year < 2023)
? ? {
? ? RTC_Set(2023, 10, 8, 13, 58, 55); /* Setup Time */
? ? ? ? printf("after RTC_Set if RTC_Get year < 2023 \n");
? ? }
? ? RTC_ExitConfigMode();
? ? BKP_WriteBackupRegister(BKP_DR1, 0XA1A1);
? ? RTC_NVIC_Config();
? ? RTC_Get();
? ? return 0;
}