首页 » 问答 » 元件/连接器 » 串口1中断如何去掉命令起始位和结束位

串口1中断如何去掉命令起始位和结束位

菜鸟
2018-08-18 09:54:02

请问下如何去掉命令起始位“S”和命令结束位“E”,直接接收数据,谢谢!

u8 receive_str[USART1_REC_NUM]; //接收缓存数组,最大USART1_REC_NUM个字节
u8 uart1_byte_count=0;

//串口1中断服务程序
void USART1_IRQHandler(void)  
{ 
 u8 rec_data;
 if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  //接收中断
  {
    rec_data =(u8)USART_ReceiveData(USART1);     //(USART1->DR) 读取接收到的数据
        if(rec_data=='S')             //如果是“S”,表示是命令信息的起始位
    {
     uart1_byte_count=0x01;
    }
   else if(rec_data=='E')             //如果是“E”,表示是命令信息的结束位    {
     if(strcmp("Light_led1",(char *)receive_str)==0)        LED1=0; //点亮LED1
     else if(strcmp("Close_led1",(char *)receive_str)==0)   LED1=1; //关闭LED1
     for(uart1_byte_count=0;uart1_byte_count<32;uart1_byte_count++)receive_str[uart1_byte_count]=0x00;
     uart1_byte_count=0;
    }
   else if((uart1_byte_count>0)&&(uart1_byte_count<=USART1_REC_NUM))
    {
       receive_str[uart1_byte_count-1]=rec_data;
       uart1_byte_count++;
    }
   }
}


关键词: 串口, 中断  

回复

匿名不能发帖!请先 [ 登陆 注册 ]