0

我无法弄清楚这一点,我可以使用一些帮助。因此,某些硬件的数据表显示“报告的错误代码是每个检测到的错误的 OR'd 结果。错误代码在表 3 中给出。”

表 3 是

0x00 -> No error
0x01 -> Power error
0x02 -> Receiver error
0x03 -> Transmitter error

然后数据表显示了一个示例。

Example :
(ETV001T0C) + checksum -> Test status 0x0C (Rx and Tx error)

0C 是错误字节。所以我的第一个问题是——我的数学错了吗?我不知道他们从哪里得到 0C。我很确定 0x02 | 0x03 = 0x03。其次,即使是 0C,您如何找出其中的错误?

4

1 回答 1

2

该表实际上给出了操作员使用的位移位置<<

1 << 0x00 = 0001b (?) -> No error
1 << 0x01 = 0010b -> Power error
1 << 0x02 = 0100b -> Receiver error
1 << 0x03 = 1000b -> Transmitter error

使用 python 作为计算器:

>>> (1 << 2) | (1 << 3)
12
>>> hex((1 << 2) | (1 << 3))
'0xc'
于 2013-04-18T04:25:16.903 回答