单片机 > 单片机程序设计 > 详情

stm32 串口接收不定长数据 亲测可行

发布时间:2020-05-30 发布时间:
|

/**************** USART1中断处理函数******************/

void USART1_IRQHandler(void)

{    

     if(USART_GetITStatus(USART1, USART_IT_RXNE)!= RESET)

      {       

          if(Rx_Counter<64)

          {

              Rx_buffer[Rx_Counter++]=USART_ReceiveData(USART1);    //接收一字节数据存入数组中

          }

      }

      else if(USART_GetITStatus(USART1,USART_IT_IDLE)!= RESET)

           {

               USART_ReceiveData(USART1); //此处一定要有,这是用于清除IDLE空闲标志位的

               USART_ClearFlag(USART1,USART_FLAG_IDLE);  

               Rx_Fin=1;    //接收完一帧数据标志 

           }

}


int main()

{

      while(1)

     {    

         if(Rx_Fin==1)

         {

              Usart_SendArray(USART1,Rx_buffer,Rx_Counter);   

             Rx_Fin=0;

             Rx_Counter=0;

         }

     }  

}


关键字:stm32  串口接收  不定长数据 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
PIC单片机基础知识之二