工具与软件:
我在 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:
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.
工具与软件:
我在 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:
尊敬的裕华:
有没有任何方法可以检查实际数字?
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