请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
工具/软件:TI-RTOS
我有一个项目在单独的 PCB 上使用两个 F28M36x 部件、通过 CAN 总线连接。 我的 CAN::Send()方法归结为:
CANMessageSet (CAN0_BASE、32、&msgObject、MSG_OBJ_TYPE_TX); STATUS = CANStatusGet (CAN0_BASE、CAN_STS_TXREQUEST); long ulTimer = 2500 * CAN_SEND_TIMEOUT_MS; 超时= false; while (status!= 0){ 如果(-ulTimer < 0){ 超时= true; 中断; } 状态= CANStatusGet (CAN0_BASE、CAN_STS_TXREQUEST); }
如果"timeout"为 true、则将重新执行此代码。
问题是 CANStatusGet ()有时返回0x80000000、我认为这表示传输尚未完成。 由于我需要保证传输、代码会重新发送消息。 奇数部分是实际发送数据,而不管 CANStatusGet ()返回的值如何。
我是否正确使用了 CANStatusGE() API 调用? 是否有其他方法可以确定数据是否已实际发送?
嗯... 我是否错过了有关 CAN API 或 F28M36x CAN 控制器的一些勘误表?
谢谢!
Steve G.