checksum = checksum ^ str[i];
这是进行校验得语句。
^  The bitwise-exclusive-OR operator compares each bit of its first operand to the corresponding bit of its second operand. If one bit is 0 and the other bit is 1, the corresponding result bit is set to 1. Otherwise, the corresponding result bit is set to 0.

解决方案 »

  1.   

    quengzi(code),dingkl() (  ):怎么累加与校验,请指点
      

  2.   

    这种传送内容一般是比较严格的按协议来进行组织的。
    在send的这一方一般是没有多大问题,
    而在接收数据的另一方则要验证才进行(根据协议)具体的数据分析。
      

  3.   

    "^"的作用就是进行异或运算,如8^6=00001000^00000110=00001110=15,该函的作用就是打包,使得要发出去的数据按一定的格式组装,最后包的格式如下(假设发送"abcd"字符串):“$abcd*'0''4''0x0d''0x0a'
      

  4.   

    先计算一个字符串的校验和,这个校验和是字符串中所有字符的异或,然后将得到的异或结果转换成字符(从数值到字符的转换,转换结果是16进制表示,如10进制的110对就的16进制是6E,则最后转换的结果就是字符串“6E”),最后一句是对原字符串及校验和进行操作(是不是写到串口?),在最后还加了一个回车换行符。如原字符串是"ABC",则处理后的字符串是"$ABC*40\n\r",\n\r表示回车换行。异或的操作:0^0=0,0^1=1,1^0=1,1^1=0,字符串的异或是对字符串的每一位进行异或操作。