欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: STM8L單片機(jī)RTC時(shí)鐘問題請教。 [打印本頁]

作者: yaofu    時(shí)間: 2021-6-4 11:18
標(biāo)題: STM8L單片機(jī)RTC時(shí)鐘問題請教。
各位大牛:現(xiàn)用STM8L151單片機(jī),采用低功耗模式,啟動看門狗,外部RTC時(shí)鐘,rtc喚醒,喚醒后喂狗,正常情況下系統(tǒng)運(yùn)行正常,但板子一旦受潮,rtc晶振不起振,造成看門狗復(fù)位,此時(shí)切換RTC為內(nèi)部LSI模式,如果外部晶振不能正常起振,切換不成功,這個問題如何解決?

作者: yaofu    時(shí)間: 2021-6-4 13:44
void rtc_init(void)
{
u16 ddys=0;  

  RTC_ClearITPendingBit(RTC_IT_WUT);                        
  RTC_ClearITPendingBit(RTC_IT_ALRA);  
  CLK_PeripheralClockConfig(CLK_Peripheral_RTC,DISABLE);    //打開RTC時(shí)鐘
  /*如果外部晶振有問題,切換內(nèi)部晶振*/
   CLK_data=0;//外部晶振0,內(nèi)部晶振為1  
if((rest_clk<20)||(FLASH_ReadByte(CLK_LSE_LSI)!=0x01))//(CLK_data==0)//外部時(shí)鐘
{   
   CLK_LSEConfig(CLK_LSE_ON);
   while( RESET==CLK_GetFlagStatus(CLK_FLAG_LSERDY))
   {
   if((++ddys)>8000)
   {
     CLK_data=1;
     break;
   }
}   
  CLK_RTCClockConfig(CLK_RTCCLKSource_LSE, CLK_RTCCLKDiv_1);//時(shí)鐘為LSE 2分頻  
  CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);    //打開RTC時(shí)鐘     
}
  
else
     
{   
   CLK_data=1;
   RTC_WakeUpCmd(DISABLE);   
   CLK_LSEConfig(CLK_LSE_OFF);   
   CLK_LSICmd(ENABLE);   
   while (CLK_GetFlagStatus(CLK_FLAG_LSIRDY) == RESET);
   CLK_RTCClockConfig(CLK_RTCCLKSource_LSI, CLK_RTCCLKDiv_1);//時(shí)鐘為LSE 2分頻   
   CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);    //打開RTC時(shí)鐘   
}
  RTC_WakeUpClockConfig(RTC_WakeUpClock_RTCCLK_Div16);      //喚醒設(shè)置為16分頻                     
  RTC_SetWakeUpCounter(80);   //設(shè)置喚醒寄存器時(shí)間為 1s 2048 ,0.5秒 1024


  RTC_ITConfig(RTC_IT_WUT, ENABLE);    //使能RTC喚醒中斷使能
  RTC_ClearITPendingBit(RTC_IT_WUT);     //清除RTC喚醒標(biāo)志
  RTC_ClearITPendingBit(RTC_IT_ALRA);                        
  RTC_WakeUpCmd(ENABLE);  

  delayms(5);
}

作者: yaofu    時(shí)間: 2021-6-4 13:44
本帖最后由 yaofu 于 2021-6-4 13:57 編輯

這個程序在外部晶振正常時(shí),經(jīng)過20次重啟,切換到內(nèi)部晶振,外部晶振一直不正常,好像一直切換不過去。





歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1