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 滤波关闭的情况下、如何检索接收到的消息 CAN-ID

Guru**** 2046040 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/994108/tms320f28377d-with-all-can-filtering-off-how-to-retrieve-the-received-message-can-id

器件型号:TMS320F28377D

我正在开发一个 CANopen 应用程序、因此必须禁用接收到的消息过滤/屏蔽(以便在网络上接收所有消息)。 这适用于接收所有消息、但我无法确定如何检索接收到的消息的 CAN-ID (地址)。 我想它会在 IF1ARB.ID 字段中、但在接收时该字段始终为0。 我的滤波/屏蔽设置如下:

CAN_IF1MSK/bit.MXtd = 0;
CAN_IF1MSk.bit.mdir = 0;
CAN_IF1MSK.bit.MSK = 0;

CAN_IF1ARB.bit.Dir = 0;//接收方向
CAN_IF1ARB.bit.ID = 0;
CAN_IF1ARB.bit.MsgVal = 1;//邮箱被启用
CAN_IF1ARB.bit.Xtd = 0;//标准11位 ID

CAN_IF1MCTL.bit.EOB = 1;
CAN_IF1MCTL.bit.umask = 1;
CAN_IF1MCTL.bit.DLC = 0;

谢谢、

Jim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    永远不介意--我的仲裁寄存器传输函数中有一个错误;无需任何响应。