主题中讨论的其他部件:TMS320F2.8335万
您好,
当我使用 正式的推荐程序:eCan_a_to_b_xmit时,我发现该程序将以这段时间任务结束,
但是,如果我 不使用此功能,而 直接设置“ECanaRegs.CANTRS.ALL”, 我可以 通过CAN接收器从计算机接收数据。
下面是我的ECAN硬件设计:
所以,我的问题是为什么我 不能获得 Transmission-Acknowledge?
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.
您好,
当我使用 正式的推荐程序:eCan_a_to_b_xmit时,我发现该程序将以这段时间任务结束,
但是,如果我 不使用此功能,而 直接设置“ECanaRegs.CANTRS.ALL”, 我可以 通过CAN接收器从计算机接收数据。
下面是我的ECAN硬件设计:
所以,我的问题是为什么我 不能获得 Transmission-Acknowledge?
当我使用 正式推荐程序eCAM_a_to_b_xmit时,我发现该程序将在此任务中结束[]您的意思是,它在这个循环中一直循环? 我在您的代码片段中注意到一件事:
while (ECanbaShadow.Canta.bit.TA25 == 0);
它应该是ECanaShadow或 ECanbShadow。 它不能是 ECanbaShadow。 我不知道您的代码如何编译这个错误。
[/quote][/quote]2.8346万"]如果我 不使用此选项,直接 设置"ECanaRegs.CANTRS.ALL ", [/报价]我不明白你想在这里说什么。 您只能将TRSn位设置为启动传输。 变速器完成后,此位将由CAN模块自动清除。 您不能手动清除它。
[/quote]为什么2000为什么我109.0379万我不2.8346万不能2.8346万能 获得 Transmission-Acknowledge? [/引述]请下载我的申请报告 http://www.ti.com/lit/spra876。 它有许多经过测试的示例。 请注意,这些示例是为TMS320F2.8335万器件编写的。 但是,只要您注意SYSCLKOUT速度的变化以及CANBTC寄存器的相应更改,它们就可以轻松地用于任何具有eCAN的28x器件。 我请您查看提供的调试提示。 大多数CAN问题都可以通过检查清单来解决。 具体来说,我已经详细解释了ACK机制。
在开始执行DO-while循环之前,请将Canta复制到ECanaShadow.Canta中:
ECanaShadow.CANTA.all = ECanaRegs.CANTA.all; do {ECanaShadow.CANTA.all = ECanaRegs.CANTA.all;} // Wait for TA0 bit to be set.. while(ECanaShadow.CANTA.bit.TA0 == 0 );
如果这不起作用,我真的不知道问题是什么。 您说SPRA876中测试过的代码也显示相同的问题,但如果您不轮询TA0,则可以使传输正常工作。