0

我想计算要发送到分配器的消息的 crc。消息格式为 STX + DATA + ETX + CRC 并写道“crc 可以通过在 7fh 和包括 ETX 在内的所有字符的总和之间使用 AND 运算符来计算,不包括 STX 或在 40h 和所有字符的总和之间使用 OR 运算符包括 ETX,不包括 STX。”
我无法从这些信息中获取 crc 的格式。欢迎任何想法或示例,
谢谢您的关注

4

1 回答 1

2

具有 ETX 值的字节将为 03。我假设它们的意思是您应该将其添加到数据中字节的值的总和中,并将其按位与 7F(十六进制)。例如:

STX + "BYE" + ETX 

结果值(十六进制)为

(0x41 + 0x59 + 0x45 + 0x03) & 7f

它给出了 0x62 的答案(十进制的 98)。由于 AND 屏蔽了除最低 7 位之外的所有位,我认为您可以放心地忽略溢出。所以,你最终会发送

STX + "BYE" + ETX + 0x62
于 2015-01-28T01:09:01.917 回答