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