两台机器通过GPRS无线连接。A机器中发送如下一组数据:
     char buff[9];                         
     buff[0]=0x01;
     buff[1]=0x03;
     buff[2]=0x07;
     buff[3]=0x9F;
     buff[4]=0x00; 
     buff[5]=0x02; 
     buff[6]=0xF5;
     buff[7]=0x51; 
     buff[8]='\0'; 
B机器中用串口调试助手接收数据,结果发现接收显示如下:
01 03 07 9F 
后面的几个数据没有接收到,如果将buff[4]=0x00 修改为 buff[4]=0x07,结果就能全部收到。 请问这是什么原因?

解决方案 »

  1.   

    char buff[9];数据按照字符串来处理,因此遇到0X00就被截断了.
    把发送的数据都放到byte buff[9]里就可以了,这样就是普通的字节流了.
      

  2.   

    发送,接收的缓冲区都应该是byte类型的数组,并且在发送,接收时指定发送,接收的长度.
    如果你发送的长度是用strlen()取的,那么肯定发送不完整的.
      

  3.   

    同意,检查里面str***之类的所有函数,都不能用,不只是不完整,还可能出异常呢。
    你得这里时发送的地方有问题,发送的函数怎么写的,贴来看过。