[51单片机] checksum 如何计算?

[复制链接]
1682|8
 楼主| hbp135 发表于 2013-11-29 14:21 | 显示全部楼层 |阅读模式
EB 0B 51 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 4F 68 77 56 63 6C 35 68 32 63 3D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5D EE 55 02 20 EC

EB 0B 51 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 6D 2B 61 6A 70 42 48 45 61 30 3D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5D F9 35 02 4F EC

EB 0B 51 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 59 6D 70 76 52 6B 50 69 4B 67 6B 3D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1C 2D FE 1D C8 EC

以上有三组数据,已知EB是包头,EC是包尾,均为不变数据,倒数第二个数据为checksum,想请问各位大虾,checksum如何计算出来的。小弟在此先感谢了。

如果知道的可以留下QQ号码,歇息。
 楼主| hbp135 发表于 2013-11-29 14:40 | 显示全部楼层
感觉很复杂,对吧?
 楼主| hbp135 发表于 2013-11-29 14:41 | 显示全部楼层
可能我说明的不够清晰,第一组的 checksum 是倒数第二个数据 20,第二组的 checksum 是倒数第二个数据 4F,第三组的 checksum 是倒数第二个数据 C8
 楼主| hbp135 发表于 2013-11-29 14:49 | 显示全部楼层
EB 0B 51 64 4F 68 77 56 63 6C 35 68 32 63 3D 5D EE 55 02 20 EC

EB 0B 51  64 6D 2B 61 6A 70 42 48 45 61 30 3D 5D F9 35 02 4F EC

EB 0B 51 59 6D 70 76 52 6B 50 69 4B 67 6B 3D 1C 2D FE 1D C8 EC

蓝色部分为不会变的数据,也就是包头包尾,为红色部分是 checksum,黑色部分为数据,这样子可能好看一点。
 楼主| hbp135 发表于 2013-11-29 15:52 | 显示全部楼层
别沉啊,大家都想不出来吗?
 楼主| hbp135 发表于 2013-11-29 16:06 | 显示全部楼层
已经用了 LRC  CRC  CRC16 等等的校验方式去试过了,都不对呢。
 楼主| hbp135 发表于 2013-11-29 17:23 | 显示全部楼层
** ^ AA = 8F
** ^ 51 = 20

这样子看更加简单,**为同一个数据,^是一个算法,求这个算法是什么,谢谢。
chenbb8 发表于 2013-11-29 17:59 | 显示全部楼层
hbp135 发表于 2013-11-29 17:23
** ^ AA = 8F
** ^ 51 = 20

你这不是C语法吧,^是(按位)异或
 楼主| hbp135 发表于 2013-11-30 15:09 | 显示全部楼层
谢谢各位,算法已经知道了,多谢!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

8

帖子

0

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