我只有一个简单的问题,关于校验和算法如何用于特定的蓝牙模块(BM62)。上面的图片解释了UART协议,并解释了校验和规则,但是我在理解它的实际工作方式时遇到了麻烦,并且似乎无法猜测图片中示例中给出的校验和值。
答案 0 :(得分:1)
这个想法似乎是您需要提出CHKSUM
使得LENH
+ LENL
+ OPCODE
+ PARAM
+ {{1} }的最低有效字节为0。因此,让我们以8位(或256为模)进行求和:
CHKSUM
+ LENH
+ LENL
+ OPCODE
+ PARAM
= 0
CHKSUM
=-(CHKSUM
+ LENH
+ LENL
+ OPCODE
)
IOW,PARAM
=-(0 + 2 +1 + 0)= -3 = 0xFD。 (请记住,所有这些操作都是8位完成的。)
您可以验证CHKSUM
满足要求(您现在可以16位完成所有工作):
0 + 2 + 1 + 0 + 0xFD = 0x100
并且最低有效字节中有0。如果我们也以8位进行此操作,则将得到0而不是0x100,这也是一种检查正确性的有效方法。