解决方案 »

  1.   

    应该相关的API文档吧?不然你怎么知道 开始和结尾的二进制数据呢
      

  2.   


    把你会的东西先贴出来。最好画出一个流程图。
    软件向串口设备发送指令  -->  软件接收返回值  --> 分组,获取所需
    发送指令:
    包头 指令 包尾 校验位
    1byte 1byte 1byte 1byte
    0x07 0x00 0x09 CRC
    接收返回值:
    包头 长度1 数据1 长度2 数据2 长度3 数据3 包尾 校验位
    1byte 1byte A byte 1byte B byte 1byte C byte 1byte 1byte
    0x02 0x0A 数据1    0x0B 数据2 0x0C 数据3 0x03 CRC
    例如:
    发送: 0x07 0x00 0x09 0x01
    接收: 0x02 0x00(长度1) 0x0A(长度2) 0x34 0x36 0x39 0x31 0x32 0x30 0x3D 0x31 0x30 0x30(数据2) 0x08(长度3) 0x39 0x37 0x31 0x30 0x31 0x30 0x30 0x30(数据3) 0x03 0x4B(校验位示例)。最终取到三个数据的十进制显示:
    数据1在例子中没有 
    数据2 :469120=100  
    数据3 :97101000
    现在 我已经可以把接收到的全部显示在list里了 但是不知道怎么获取单独的数据1.2.3
      

  3.   

    一个效率可能不高的思路:接收的数据看成一个大的数组。第1步 :循环3次,取出每次的数据到3个小数组第2步:然后在每个数组中循环,把每个字节转换为ascll码,并连接转换来的字符为字符串。
      

  4.   

    你都取到list了,按照你们自己定义的协议,后面应该很好操作了。
    可以用数组来处理,你要用到的知识主要是数组的操作:
    数组可以截取一些元素成子数组、数组可以获得指定的元素的数据
      

  5.   

    问题1:关于CRC校验,没接触过,不会写,也就没法判断数据完整性。没接触过,那就要先百度下了,原理不了解,神仙也写不出来的。