首页 > 解决方案 > SocketCan 错误:向未通电的硬件发送帧

问题描述

我在没有通电节点的 CAN 总线上发送消息。返回的 CAN 报文的报文 ID 为 0x2000 0088,表示 CAN_ERR_FLAG。

CAN_ERR_PROT 和 CAN_ERR_BUSERROR 已设置。

数据[0..7]:0x00 0x00 0x80 0x19 0x00 0x00 0x00 0x00

解码数据[2] = CAN_ERR_PROT_TX 并且,数据[3] = CAN_ERR_PROT_LOC_ACK

这是预期的情况,因为总线上没有节点来确认消息。

但...

我们正在设备上进行 epolling,并不断报告上述错误。即使我们打开一个 CAN 节点,我们仍然会收到这些错误。

如果我们在 CAN 节点通电的情况下启动我们的应用程序,那么一切都会按预期运行。

Wireshark 捕获

我们应该如何从这种情况中恢复过来?

标签: can-bussocketcan

解决方案


推荐阅读