This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28377D: CAN通信邮箱设置,发送和接收邮箱如何对应

Part Number: TMS320F28377D


参照官方例程,如果期望是2号邮箱接收数据,那么按照下面设置。

CANMessageSet(CANA_BASE, 2, &sRXCANMessageGp2, MSG_OBJ_TYPE_RX);
CANMessageSet(CANA_BASE, 1, &sTXCANMessageGp2ID1, MSG_OBJ_TYPE_TX);

同理,期望三号,四号邮箱接收苏剧,设置为

// 三号邮箱接收数据

CANMessageSet(CANA_BASE, 3, &sRXCANMessageGp3, MSG_OBJ_TYPE_RX);
CANMessageSet(CANA_BASE, 2, &sTXCANMessageGp3ID1, MSG_OBJ_TYPE_TX);

// 四号邮箱接收数据

CANMessageSet(CANA_BASE, 4, &sRXCANMessageGp4, MSG_OBJ_TYPE_RX);
CANMessageSet(CANA_BASE, 3, &sTXCANMessageGp4ID4, MSG_OBJ_TYPE_TX);

现在采用的是loopbak模式测试,发现按照上述设置可以达到期望结果,一旦不匹配就无法收到数据。

当前个人理解为配置MSG_OBJ_TYPE_RX的ui32ObjID可以明确把数据发送到哪个邮箱,配置MSG_OBJ_TYPE_TX的ui32ObjID可以指定从哪个邮箱读取数据。

疑问在于,为何配置MSG_OBJ_TYPE_RX的ui32ObjID,要比MSG_OBJ_TYPE_TX的ui32ObjID要少1?或者说是否应用存在问题?应该怎样配置?