CH32V20xEVT内的RTC例程, 在内置晶振的 CH32V203F8P6 开发板中运行输出总是0, 意识到例程中使用的是外置晶振, 于是修改程序的RTC初始化函数如下, 可是还是无法得到正确的输出, 请教高人指点, 谢谢!
u8 RTC_Init(void)
{
u8 temp = 0;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
PWR_BackupAccessCmd(ENABLE); //使能 RTC 和后备寄存器访问
BKP_DeInit(); //复位备份区域,将BKP寄存器清空
RCC_LSICmd(ENABLE); //开启内部低速晶振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;
}