主题中讨论的其他器件:HALCOGEN
我遇到了很多不可靠的 CAN 启动。 有时可以正常启动、消息在我的两个 Launchpad 之间无问题地流动。 有时、可能无法正常启动、两个 Launchpad 之间没有任何流动。
每个 Launchpad 节点上的代码,1和2,调用 canInit() 以初始化通信。 我发现,如果我在两个节点的特定“时间窗口”内启动 canInit(),则流量将正常流动。 但是,如果 canInit()位于该窗口之外,则两个节点将无限期停留在 canIsTxMessagePending ()中,其中已填充了发送消息框(挂起),但未发生传输。 我已经尝试忽略挂起的情况并使用另一条消息调用 canTransmit()或清除传输挂起位,但也不会"解开"消息框。 我还尝试将 Halcogen 设置为使用"启用自动总线打开"、但没有结果。
我很确定这与 INAAN CAN 协议缺陷有关、在这种缺陷中、如果没有接收器来接收消息(接收器清除总线上消息中的"我正在侦听"位)、发送器"中止"其传输、也许 TI CAN 实现。 如果我在 CAN 总线上放置 Kvaser Leaf Lite 分析器探针、则数据流会很顺利、因为分析器会主动清除总线上消息中的位。 这是一种有缺陷的协议、其中分析器必须具有_侵入式_才能使数据流动并受到监控。
这个主要的错误有没有办法解决,或者我死在水里了吗?
感谢所有帮助。
