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.

[参考译文] 编译器/TMS320F28377D:28377S 上的 CAN、MsgBox 32配置在 MsgBox 1处发送数据时被覆盖

Guru**** 2540720 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/622850/compiler-tms320f28377d-can-on-28377s-msgbox-32-config-overwritten-on-sending-data-at-msgbox-1

器件型号:TMS320F28377D

工具/软件:TI C/C++编译器

我为消息框16...32设置 CAN RX FIFO。

对于(i = 16;i < 32;i++){
CAN_setupMessageObject (CANA_base、I、0、CAN_MSG_FRAME_STD、CAN_MSG_OBJ_TYPE_RX、 0、CAN_MSG_OBJ_USE_ID_FILTER | CAN_MSG_OBJ_FIFO、MSG_DATA_LENGTH); 
} CAN_setupMessageObject (CANA_base、I、0、CAN_MSG_FRAME_STD、CAN_MSG_OBJ_TYPE_RX、 0、CAN_MSG_OBJ_USE_ID_FILTER ,MSG_DATA_LENGTH);//最后的 FIFO 条目

并通过轮询新消息标志来读取消息。

这正常工作、此配置会写入存储器

接收也按预期工作。

但是、如果我要发送

在这里、我恰好在之后的断点处停止。

消息框32存储器中的配置被覆盖。 此外、还设置了消息框32的 TX 请求标志。

为什么?

消息框32上的 TX 请求将永远不会被清除。

(任何其它可被写入此存储器的 CAN 节点都没有应答。)

从消息框32读取数据始终为零。

感谢你的帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好

    这是 CAN 驱动程序中当前存在的一个错误。 更新的 driverlib 即将推出。
    同时、您可以参阅此帖子以及我的回答"如何修复驱动程序 :e2e.ti.com/.../2233780 "

    此致
    Chris