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

串口1中断不用命令起始位和结束位如何写

菜鸟
2018-08-18 15:22:22     悬赏15分

请问下,下面这段程序如何去掉命令起始位“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++;  
    }  
   }  
}


关键词: 串口, 中断  

回复

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