embedded - PIC CAN 测试代码未按预期工作
问题描述
我使用 PIC18F4580 为 CAN 创建了一个简单的测试代码。它由 2 个相互发送数据的节点组成。使用 11 位标准 ID 进行通信。节点 1 的 ID 为 10,节点 2 的 ID 为 20。我尝试在 LCD 上显示寄存器内容,如COMSTAT
, TXB0CON
,RXB0CON
这里是寄存器内容。
COMSTAT = 0x00
TXB0CON = 0x00
RXB0CON = 0x01
- 按下 键时,LCD 上首先会依次显示 COMSTAT、TXB0CON 和 RXB0CON 的内容。
- 然后最后它会将消息帧 ID = XX, Data = NDx 放在 CAN 总线上
- 节点 1 将 ND2 放在数据字段 D0(N)、D1(D) 和 D2(2) 上,其中 DLC 为 3,ID = 20。
- 同样,Node-2 将 ND1 放在数据字段 D0(N)、D1(D) 和 D2(1) 上,其中 DLC 为 3 且 ID = 10(请参阅给出的测试代码)。
两个节点都发送数据,但 Node-1 仅接收。并显示 ID = 00 而不是 10,并且接收到的数据在 LCD 上显示为一些垃圾。