//初始化RTC时钟,同时检测时钟是否工作正常 //BKP->DR1用于保存是否第一次配置的设置 //返回0:正常 //其他:错误代码 u8 RTC_Init(void) { //检查是不是第一次配置时钟 u8 temp=0; RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); //使能PWR和BKP
出现的现象:使用野火的RTC例程,在软件仿真时如果不需要配置,则程序会死在 RTC_WaitForSynchro() 函数中。而下载到硬件上时,有时候可以跑,有时候也会在该函数中死循环。可能的原因:首先,一定要确认是否使能了对后备寄存器和RTC的访问。系统复位后,对后备寄存器和RTC的访问被禁止,这是为了防止对后备区域(BKP...
RTC_WaitForSynchro();(可能的死循环点)/* Wait until last write operation on RTC registers has ...
PWR_BackupAccessCmd(ENABLE); RCC_RTCCLKCmd(ENABLE);(若不调用该函数,就会在 RTC_WaitForSynchro() 函数中死循环,等待RTC时钟同步)。
RTC_WaitForSynchro(); //等待最近一次对RTC寄存器的写操作完成 该函数中 while ((RTC->CRL & ...
RTC_WaitForSynchro卡死 首先将标准库例子中RTC_Configuration中的下面三行代码放上Time_init中,如果使用...
after an APB reset or an APB clock stop.param None retval None / void RTC_WaitForSynchro(void){ /* Clear RSF flag */ RTC->CRL &= (uint16_t)~RTC_FLAG_RSF;/* Loop until RSF flag is set */ while ((RTC->CRL & RTC_FLAG_RSF) == (uint16_t)RESET){ } } ...
RTC_WaitForSynchro(); /允许RTC秒中断/ RTC_ITConfig(RTC_IT_SEC, ENABLE); /等待上次RTC寄存器写操作完成/ RTC_WaitForLastTask(); } /定义了时钟输出宏,则配置校正时钟输出到 PC13,用于RTC时钟频率的校准或调整时间补偿/ #ifdef RTCClockOutput_Enable /使能PWR和BKP的时钟/ RCC_APB1PeriphClockCmd(RCC_APB...
void)等待RTOFF位(RTC操作完成标志位)值1说明前一次对RTC的操作已经完成void RTC_WaitForSynchro(...
出现的现象:使用野火的RTC例程,在软件仿真时如果不需要配置,则程序会死在 RTC_WaitForSynchro() 函数中。而下载到硬件上时,有时候可以跑,有时候也会在该函数中死循环。 可能的原因: 首先,一定要确认是否使能了对后备寄存器和RTC的访问。 系统复位后,对后备寄存器和RTC的访问被禁止,这是为了防止对后备区域(BKP)...