1

我有一个串行端口(HEX)接收到这个字符串:

02 30 31 30 30 3f 50 35 32 0d 0a
02 30 31 30 31 3f 55 35 38 0d 0a
02 30 31 30 32 3f 48 34 43 0d 0a
02 30 31 30 33 3f 45 34 41 0d 0a
02 30 31 30 34 3f 50 35 36 0d 0a
02 30 31 30 35 3f 55 35 43 0d 0a
02 30 31 30 36 3f 48 35 30 0d 0a
02 30 31 30 37 3f 45 34 45 0d 0a
02 30 31 30 38 3f 50 35 41 0d 0a
02 30 31 30 39 3f 55 36 30 0d 0a
02 30 31 31 30 3f 48 34 42 0d 0a
02 30 31 31 31 3f 45 34 39 0d 0a
02 30 31 31 32 3f 50 35 35 0d 0a
02 30 31 31 33 3f 55 35 42 0d 0a
02 30 31 31 34 3f 48 34 46 0d 0a
02 30 31 31 35 3f 45 34 44 0d 0a




1° hex: STX
2° & 3°: fixed
4° & 5°: from 30 30 to 39 39
6°: fixed
7°: same routine 55 / 48 / 45 / 50 
8° & 9°: my question
10°: CR
11°: LF

有人可以帮助我了解 8 和 9 十六进制背后的逻辑吗?

非常感谢安德里亚

4

1 回答 1

1

将 1 到 7 的所有字节相加。然后取结果的最后两位,以十六进制表示(使用大写字母)。获取每个数字的 ascii 值,它们是校验和的两个字节。例如,将第一行的所有字节相加得到 0x152。5 和 2 的 ascii 代码是 0x35 和 0x32。

于 2016-09-02T21:44:45.797 回答