CH32V20xEVT內(nèi)的RTC例程, 在內(nèi)置晶振的 CH32V203F8P6 開發(fā)板中運行輸出總是0, 意識到例程中使用的是外置晶振, 于是修改程序的RTC初始化函數(shù)如下, 可是還是無法得到正確的輸出, 請教高人指點, 謝謝!
u8 RTC_Init(void)
{
? ? u8 temp = 0;
? ? RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
? ? PWR_BackupAccessCmd(ENABLE); //使能 RTC 和后備寄存器訪問
? ? BKP_DeInit();? ?//復(fù)位備份區(qū)域,將BKP寄存器清空
? ? RCC_LSICmd(ENABLE); //開啟內(nèi)部低速晶振LSI
? ? while(RCC_GetFlagStatus(RCC_FLAG_LSIRDY) == RESET && temp < 250)
? ? {
? ? ? ? ? ? temp++;
? ? ? ? ? ? Delay_Ms(20);
? ? }
? ? if(temp >= 250) {
? ? ? ? printf("failed to init.\r\n");
? ? ? ? return 1;
? ? }
? ? RCC_RTCCLKConfig (RCC_RTCCLKSource_LSI);
? ? RCC_RTCCLKCmd(ENABLE);
? ? RTC_WaitForLastTask();
? ? RTC_WaitForSynchro();
? ? RTC_ITConfig(RTC_IT_SEC, ENABLE);
? ? RTC_WaitForLastTask();
? ? RTC_EnterConfigMode();
? ? RTC_SetPrescaler(32767);
? ? RTC_WaitForLastTask();
? ? RTC_Set(2019, 10, 8, 13, 58, 55); /* Setup Time */
? ? RTC_ExitConfigMode();
? ? BKP_WriteBackupRegister(BKP_DR1, 0XA1A1);
? ? RTC_NVIC_Config();
? ? RTC_Get();
? ? return 0;
}