天天看點

stm32内部低速rtc_stm32f103ZE單片機RTC時鐘采用内部時鐘例程

【執行個體簡介】

本代碼改編自正點原子的RTC時鐘例程代碼,改RTC時鐘為内部RC時鐘提供,測試平台為stm32f103ze系列單片機;

【執行個體截圖】

stm32内部低速rtc_stm32f103ZE單片機RTC時鐘采用内部時鐘例程

【核心代碼】

RCC_LSICmd(ENABLE);//開啟内部低速晶振LSI

while (RCC_GetFlagStatus(RCC_FLAG_LSIRDY) == RESET&&temp<250)//檢查指定的RCC标志位設定與否,等待低速晶振就緒

{

temp ;

delay_ms(10);

}

if(temp>=250)return 1;//初始化時鐘失敗,晶振有問題

//RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);//設定RTC時鐘(RTCCLK),選擇LSE作為RTC時鐘

RCC_RTCCLKConfig(RCC_RTCCLKSource_LSI);

RCC_RTCCLKCmd(ENABLE);//使能RTC時鐘

RTC_WaitForLastTask();//等待最近一次對RTC寄存器的寫操作完成

RTC_WaitForSynchro();//等待RTC寄存器同步

RTC_ITConfig(RTC_IT_SEC, ENABLE);//使能RTC秒中斷

RTC_WaitForLastTask();//等待最近一次對RTC寄存器的寫操作完成

RTC_EnterConfigMode();/// 允許配置

RTC_SetPrescaler(40000); //設定RTC預分頻的值

RTC_WaitForLastTask();//等待最近一次對RTC寄存器的寫操作完成

RTC_Set(2015,1,14,17,42,55);  //設定時間

RTC_ExitConfigMode(); //退出配置模式

BKP_WriteBackupRegister(BKP_DR1, 0X5000);//向指定的後備寄存器中寫入使用者程式資料

}