【執行個體簡介】
本代碼改編自正點原子的RTC時鐘例程代碼,改RTC時鐘為内部RC時鐘提供,測試平台為stm32f103ze系列單片機;
【執行個體截圖】
【核心代碼】
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);//向指定的後備寄存器中寫入使用者程式資料
}