我有一个非常旧的设备,我通过串口连接。当我发送数据时,它希望用它来计算校验和。我将字符串字符的所有ascii值加起来并将总和转换为BCD。这导致非法的BCD字符,例如1011.在提供的唯一示例中,它们将1011转换为“;”。当我在示例中发送数据时,校验和清除正常。但是,当我使用“;”对于其他非法字符,它失败了。有谁看过使用“;”之前和如果有的话,是否有人知道其他非法字符的值是什么?
编辑:我的示例:
STX 000 0010
1 011 0001
2 011 0010
3 011 0011
CR 000 1101
A 100 0001
B 100 0010
C 100 0011
CR 000 1101
EXT 000 0011
Total 10111 1011
Convert To BCD 1 0111 1011
Checksum 1 7 ;
答案 0 :(得分:0)
看起来他们正在使用接下来的六个ASCII字符:
DEC HEX1 HEX2 BIN1 BIN2 CHAR
48 3 0 0011 0000 0
49 3 1 0011 0001 1
50 3 2 0011 0010 2
51 3 3 0011 0011 3
52 3 4 0011 0100 4
53 3 5 0011 0101 5
54 3 6 0011 0110 6
55 3 7 0011 0111 7
56 3 8 0011 1000 8
57 3 9 0011 1001 9
58 3 A 0011 1010 :
59 3 B 0011 1011 ;
60 3 C 0011 1100 <
61 3 D 0011 1101 =
62 3 E 0011 1110 >
63 3 F 0011 1111 ?