stm的官方源码,checksum怎么是这样的?

[复制链接]
 楼主| 奔牛滚滚 发表于 2012-2-4 15:59 | 显示全部楼层 |阅读模式
checksum应该是求和的啊,可以代码却是下面这样的
  1.   //check checksum
  2.   if(*(--ReceivedData) ^ *(--ReceivedData) ^ *(--ReceivedData) ^ *(--ReceivedData) ^ *(--ReceivedData))
  3.     result = 0;

全部是"与"运算
allround 发表于 2012-2-4 16:28 | 显示全部楼层
这里可能是简单的校验,跟协议有关
lifeinjoy 发表于 2012-2-5 16:54 | 显示全部楼层
从代码上看,应该是对接收到的数据(5个元素,类型未知),进行模2加,如果结果不为0,则返回result = 0;
就是说,只有这5个元素的各个位上的1的个数加起来都是偶数(0也算),才不会返回0;
这个,应该跟数据的奇偶校验有关
您需要登录后才可以回帖 登录 | 注册

本版积分规则

384

主题

1461

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部