RTC_WaitForSynchro()
rtc時鐘開啟后需要等待APB1時鐘與RTC時鐘同步才能讀寫寄存器。
?
RTC_WaitForSynchro()。
?
/**
? * @brief ?Configures the RTC.
? * @param ?None
? * @retval None
? */
void RTC_Configuration(void)
{
? /* Enable PWR and BKP clocks */
? RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
? /* Allow access to BKP Domain */
? PWR_BackupAccessCmd(ENABLE);
? /* Reset Backup Domain */
? BKP_DeInit();
? /* Enable LSE */
? RCC_LSEConfig(RCC_LSE_ON);
? /* Wait till LSE is ready */
? while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET)
? {}
? /* Select LSE as RTC Clock Source */
? RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);
? /* Enable RTC Clock */
? RCC_RTCCLKCmd(ENABLE);
? /* Wait for RTC registers synchronization */
? RTC_WaitForSynchro();
? /* Wait until last write operation on RTC registers has finished */
? RTC_WaitForLastTask();
? /* Enable the RTC Second */
? RTC_ITConfig(RTC_IT_SEC, ENABLE);
? /* Wait until last write operation on RTC registers has finished */
? RTC_WaitForLastTask();
? /* Set RTC prescaler: set RTC period to 1sec */
? RTC_SetPrescaler(32767); /* RTC period = RTCCLK/RTC_PR = (32.768 KHz)/(32767+1) */
? /* Wait until last write operation on RTC registers has finished */
? RTC_WaitForLastTask();
}
?
總結
以上是生活随笔為你收集整理的RTC_WaitForSynchro()的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于STM32使用RTC时复位后程序死在
- 下一篇: stm32f103 spi crc