乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      我的STM8串口接收中斷為啥總是溢出錯(cuò)誤啊?

       wwkfisker1 2016-01-22
      我用STM8的串口中斷接收GSM模塊的數(shù)據(jù),波特率是38400,串口接收到的字符串有時(shí)候是對(duì)的,有時(shí)候會(huì)少一個(gè)字符。我發(fā)現(xiàn)是串口溢出錯(cuò)誤引起的,如果不清除溢出標(biāo)志,就會(huì)在串口中斷里跳不出來(lái)了。
      問(wèn)題是,為啥我的程序老是溢出錯(cuò)誤呢? 有的人說(shuō)是串口的FIFO不夠,所以溢出,有的人說(shuō)是中斷優(yōu)先級(jí)不夠高,是這樣么?我這里也就一個(gè)串口中斷,一個(gè)定時(shí)器中斷。希望高手指教,非常感謝??!

      int main( void )
      {
          u8 *pr,i;
          u8 loc_temp[20];
          GPIO_Init(GPIOC, GPIO_Pin_3, GPIO_Mode_Out_PP_High_Fast);  //TXD   //txd初始化為高電平互補(bǔ)推挽輸出模式
          GPIO_Init(GPIOC, GPIO_Pin_2, GPIO_Mode_In_PU_No_IT);      //RXD    //rxd初始化為不帶中斷上拉輸入模式  
          CLK_PeripheralClockConfig (CLK_Peripheral_USART1,ENABLE);//開(kāi)啟USART時(shí)鐘
          USART_Init(USART1,38400,USART_WordLength_8b,USART_StopBits_1,USART_Parity_No,USART_Mode_Tx|USART_Mode_Rx);//設(shè)置USART參數(shù)9600,8N1,接收/發(fā)送
          USART_ITConfig (USART1,USART_IT_RXNE,ENABLE);//使能接收中斷
          USART_Cmd (USART1,ENABLE);//使能USART
          CLK_PeripheralClockConfig (CLK_Peripheral_TIM4,ENABLE); //使能外設(shè)時(shí)鐘
          TIM4_TimeBaseInit(TIM4_Prescaler_128, 0xff);
          TIM4_ClearFlag(TIM4_FLAG_Update);
          TIM4_ITConfig(TIM4_IT_Update, ENABLE);
          TIM4_Cmd(ENABLE);   
          enableInterrupts();
          Delay(60000);  
          GSM_Start_Config();
          while(1)
          {
          }
      }
      //===============================================================
      INTERRUPT_HANDLER(USART1_RX_TIM5_CC_IRQHandler,28) //串口中斷處理程序
      {
          /* In order to detect unexpected events during development,
             it is recommended to set a breakpoint on the following instruction.
          */
           u8 cc;
           if( USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)//接收中斷處理
           {
               USART_ClearITPendingBit (USART1,USART_IT_RXNE);//清中斷標(biāo)志      
               cc=USART_ReceiveData8 (USART1);
               if(USART_RX_STA<200)
               {
                  receive_count=0;
                  if(USART_RX_STA==0)
                  {
                      count_start_flag =1;//計(jì)數(shù)器開(kāi)始計(jì)數(shù)
                  }
                  USART_RX_BUF[USART_RX_STA++]=cc;         
               }
               else
               {
                  USART_RX_STA|=1<<14;
                  count_start_flag =0;
               }
           }
           if(USART_GetFlagStatus(USART1,USART_FLAG_OR)==SET)//溢出中斷處理
           {
             USART_ClearFlag(USART1,USART_FLAG_OR);
             USART_ReceiveData8 (USART1);
            
           }     
      }

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶(hù) 評(píng)論公約

        類(lèi)似文章 更多