if (((data==0x03)||(data==0x01)||(data==0x05)||(data==0x10))==0)//如果第一位不等于读指令0x03,01,05,10功能码,则清接收缓冲区指针
{
usart0_rx_count=0;
}
else//等于这几个功能码则进行,则将他放入接收数组,并预计接收数组长度,不是10码时都是8个字节
{
usart0_rx_buf[1]=data;
if (data!=0x10)
{
rx0_buf_size=8;
}
}
break;
case 3:
usart0_rx_buf[2]=data;
break;
case 4:
usart0_rx_buf[3]=data;
break;
case 5:
usart0_rx_buf[4]=data;
break;
case 6:
usart0_rx_buf[5]=data;
break;
case 7:
usart0_rx_buf[6]=data;//10码时接收的字节计数
if (usart0_rx_buf[1]==0x10)
{
rx0_buf_size=9+usart0_rx_buf[6];
}
break;
case 8:
usart0_rx_buf[7]=data;//1,用10功能码时有效的数据位,system_reg_data的数据,这里规定最多接收26个字节(不带crc)
break;
case 9:
usart0_rx_buf[8]=data;//2
break;
case 10:
usart0_rx_buf[9]=data;//3
break;
case 11:
usart0_rx_buf[10]=data;//4
break;
case 12:
usart0_rx_buf[11]=data;//5
break;
case 13:
usart0_rx_buf[12]=data;//6
break;
case 14:
usart0_rx_buf[13]=data;//7
break;
case 15:
usart0_rx_buf[14]=data;//8
break;
case 16:
usart0_rx_buf[15]=data;//9
break;
case 17:
usart0_rx_buf[16]=data;//10
break;
case 18:
usart0_rx_buf[17]=data;//11
break;
case 19:
usart0_rx_buf[18]=data;//12
break;
case 20:
usart0_rx_buf[19]=data;//13
break;
case 21:
usart0_rx_buf[20]=data;//14
break;
case 22:
usart0_rx_buf[21]=data;//15
break;
case 23:
usart0_rx_buf[22]=data;//16
break;
case 24:
usart0_rx_buf[23]=data;//17
break;
case 25:
usart0_rx_buf[24]=data;//18
break;
case 26:
usart0_rx_buf[25]=data;//19
break;
case 27:
usart0_rx_buf[26]=data;//20
break;
case 28:
usart0_rx_buf[27]=data;//21
break;
case 29:
usart0_rx_buf[28]=data;//22
break;
case 30:
usart0_rx_buf[29]=data;//23
break;
case 31:
usart0_rx_buf[30]=data;//24
break;
case 32:
usart0_rx_buf[31]=data;//25
break;
case 33:
usart0_rx_buf[32]=data;//26
break;
case 34:
usart0_rx_buf[33]=data;//27
break;
case 35:
usart0_rx_buf[34]=data;//28
break;
}