0

我有一个非常旧的设备,我正在通过串行连接。当我发送数据时,它希望用它计算校验和。我将字符串字符的所有 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   ;
4

1 回答 1

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    ?
于 2013-06-26T19:26:57.017 回答