主题中讨论的其他器件:SN65HVD230、 TMS320F28335、 C2000WARE
通过 CAN 总线发送消息时未设置发送确认(TA)位。 我正在使用 www.ti.com/lit/SPRA876中的 TXLOOP_A 项目 、主要代码片段在下面提供。 当我运行程序时、它会卡在 do while 循环中。 好像是在等待 CPU 设置 TA25位、而且我们在 F28035控制器的 TX 引脚上找不到数据等任何信号。 我知道 CAN 总线必须至少有两个节点才能由接收器节点发出确认。 在此上下文中请帮助我,我正在使用 Code Composer Studio v 12.3进行调试。 提前感谢。
/*写入邮箱 RAM 字段*/
ECanaMboxes.MBOX25.MDL.all = 0x55555555;
ECanaMboxes.MBOX25.MDH.all = 0x55555555;
//开始传输
for (I=0;I < TXCOUNT;I++)// TXCOUNT =10000定义为#define TXCOUNT 10000
{
ECanaShadow.CANTRS.all = 0;
ECanaShadow.CANTRS.bit.TRS25 = 1;//为受测邮箱设置 TRS
ECanaRegs.CANTRS.all = ECanaShadow.CANTRS.all;
ECanaShadow.Canta.all = ECanaRegs.Canta.all;
执行{ECanaShadow.Canta.all = ECanaRegs.Canta.all;}//等待 TA25位被设置。
while (ECanaShadow.Canta.bit.TA25 == 0 );
ECanaShadow.Canta.all = 0;
ECanaShadow.CANA.bit.TA25 = 1;//清除 TA5
ECanaRegs.Canta.all = ECanaShadow.Canta.all;
循环计数++;
}