STM32之RTC配置与初始化
void rtc_init() { //让电源和后备寄存器使能 RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR|RCC_APB1Periph_BKP,ENABLE); //后备寄存器访问使能 PWR_BackupAccessCmd(ENABLE); //初始化后备寄存器区域 BKP_DeInit(); //启用外部时钟 RCC_LSEConfig(RCC_LSE_ON); //等待外部时钟启用成功 while(!RCC_GetFlagStatus(RCC_FLAG_LSERDY)); //配置RTC的时钟源伟外部时钟LSE RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE); //启用RTC RCC_RTCCLKCmd(ENABLE); //等待时钟同步 RTC_WaitForSynchro(); //等待上一个命令完成 RTC_WaitForLastTask(); //时钟计算公式:fTR_CLK=fRTCLK/(PRL[19:0]+1) //PRL[19:0]=32767,即预设的分频系数 //fRTCLK=1Hz,即1秒 RTC_SetPrescaler(32767); //等待上一个命令完成 RTC_WaitForLastTask(); //启用秒中断 RTC_ITConfig(RTC_IT_SEC,ENABLE); //等待上一个命令完成 RTC_WaitForLastTask(); }
posted on 2016-01-26 10:13 foggia2004 阅读(2804) 评论(0) 编辑 收藏 举报