網上關于STM32單片機RTC使用HSE時鐘的資料很少,一般介紹的都是使用LSE做時鐘.現做一個項目,需要一個秒中斷
想起用RTC.程序如下.
void Rtc_Config(void){
RCC_APB1PeriphClockCmd (RCC_APB1Periph_PWR | RCC_APB1Periph_BKP , ENABLE );
PWR_BackupAccessCmd (ENABLE );
if(BKP_ReadBackupRegister (BKP_DR1 ) != BKP_VALUE ){
BKP_DeInit ();
RCC_RTCCLKConfig (RCC_RTCCLKSource_HSE_Div128 );
RCC_RTCCLKCmd (ENABLE );
RTC_WaitForLastTask ();
RTC_WaitForSynchro ();
RTC_ITConfig (RTC_IT_SEC ,ENABLE );
RTC_WaitForLastTask ();
RTC_EnterConfigMode ();
RTC_SetPrescaler (125000);
RTC_WaitForLastTask ();
RTC_ExitConfigMode ();
BKP_WriteBackupRegister (BKP_DR1 ,BKP_VALUE );
}
else{
RTC_WaitForSynchro ();
RTC_ITConfig (RTC_IT_SEC ,ENABLE );
RTC_WaitForLastTask ();
}
Rtc_Nvic_Config ();
}
|