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.

[参考译文] LAUNCHXL-F280025C:如何获取 CAN 接收消息的数据长度?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1407605/launchxl-f280025c-how-to-get-data-length-of-can-receive-message

器件型号:LAUNCHXL-F280025C

工具与软件:

我在 DLC 中无法获得实际数据长度、它将与 OBJ 设置相同。

如下所示、当发送消息为8长度数据、但 OBJ 设置长度为5时。

我们将得到 DLC = 5。 有没有任何方法可以获得实际的数据长度?

数据长度=5、OBJ 长度=5、DLC = 5 数据长度=5、obj 长度=8、DLC=8
数据长度=8、OBJ 长度=5、DLC=5 数据长度=8、obj 长度=8、DLC = 8

CAN 对象设置:

阅读 DLC:

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

    尊敬的 裕华

    这位专家目前因美国假期而不在办公室。 请预计响应会有延迟。

    此致、

    Aishwarya.

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

    尊敬的裕华:

    DLC 是用户添加的信息、在传输期间包含在 CAN 帧中。  接收节点将读取 CAN 帧中的任何 DLC 信息。  DLC 不提供接收的实际字节数。  管理帧中实际字节数的最佳方法是确保在传输过程中发送的 DLC 信息与发送的实际字节数相匹配。

    此致、

    Joseph

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

    尊敬的 Joseph:

    感谢您的响应。

    所以有什么方法可以检查实际的数字吗?

    我在 CAN 对象设置方面还有一个问题。

    当我将两个 CAN 对象设置为接收时、我无法同时接收这两条消息。

    但当我为每个对象只设置一个对象时、我可以接收。

    您能帮我解决这个问题吗?

    谢谢。

    可以初始化:

    接收 CAN 消息和读取:

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

    尊敬的裕华:

    有没有任何方法可以检查实际数字?

    JC:不、您必须确保传输节点将发送与将与 CAN 数据传输的字节数相匹配的实际 DLC 值。

    [报价 userid="576895" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1407605/launchxl-f280025c-how-to-get-data-length-of-can-receive-message/5392930 #5392930"]

    当我将两个 CAN 对象设置为接收时、我无法同时接收这两条消息。

    但当我为每个对象只设置一个对象时、我可以接收。

    [报价]

    JC:两个接收消息对象定义使用了相同的消息 ID 0xFFFFFFFF。  首先、这是不正确的、因为 CAN 的扩展消息 ID 是29位长、因此它应该是0x1FFFFFFF。  其次、检查您是否使用了正确的掩码值。  第一个对象的掩码值为0、这意味着第一个消息对象(RX_msg1_obj_ID)将接收任何消息 ID。  第二个消息对象(RX_msg2_obj_ID)的掩码值为0x00EA1300 、这意味着 任何与格式 xxxx.xxxx.111x1.xxx1.xx11.xxxx.xxxx (二进制)(其中 x=忽略位值)匹配的消息 ID 都将分配给 RX_msg2_obj_ID 对象。

    请查看示例 CAN_EX8_MASK 以了解消息 ID 过滤的工作原理。

    此致、

    Joseph

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

    尊敬的 Joseph:

    感谢您的回答。 我可以收到所需的消息。

    当对象设置时、对象编号是否表示 CAN 消息的优先级?

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

    尊敬的裕华:

    是的、较低的对象编号具有优先级。

    此致、

    Joseph