TMS320F2800137: CAN在使用轮询方式快速发送数据的时候会丢失数据,已经开启DAR、ABO。怎么判断总线是否空闲。

Part Number: TMS320F2800137


我每次发送之前尝试使用CAN_getTxRequests(CANA_BASE) & (1<<mailbox)判断邮箱空闲状态,但是有一些发送的数据还是会被后面发的覆盖掉。其他邮箱我也有在使用,请告诉我如何判断CAN总线的情况以便我把数据发送出去而不出现丢失数据帧的情况。

  • 您好,

    已经收到了您的案例,调查需要些时间,感谢您的耐心等待。

  • 您好,

         CAN 发送 API 应该检查是否有待处理的发送请求。如果有多个发送请求待处理,它们将根据消息对象的优先级进行处理。

    如果 API 没有检查,应该在发送新消息之前使用 API   CAN_getTxRequests() 进行检查。如果同一消息对象或邮箱有任何待处理的请求,应该等待直到待处理的消息被发送完毕。