Other Parts Discussed in Thread: TMS320F28335, CONTROLSUITE
器件型号: TMS320F28335
Thread 中讨论的其他器件: controlSUITE
您好:
我叫 Kwangsu Kim、是目前正在使用 TMS320F28335 进行开发的高级研究员。
很荣幸地获悉与 F28335 的 CAN 通信功能相关的问题。 在查看 controlSUITE (TMS320F28335、版本 142) 中包含的 eCAN_a_to_b_xmit 示例时、我遇到了源代码中的一点、我想对其进行澄清。
该示例的第 125–136 行如下所示:
ECanaShadow.CANTRS.ALL = 0;
ECanaShadow.CANTRS.bit.TRS25 = 1; //为被测邮箱设置 TRS
ECanaRegs.CANTRS.all = ECanaShadow.CANTRS.all;
应该做
{
ECanaShadow.canta.all = ECanaRegs.Canta.all;
} while (ECanaShadow.canta.bit.TA25 == 0 ); //等待设置 TA25 位。
ECanaShadow.canta.all = 0;
ECanaShadow.canta.bit.TA25 = 1; //清除 TA25
ECanaRegs.Canta.all = ECanaShadow.canta.all;
如上所示、TRS 位设置为请求传输、然后代码在 do-while 循环中等待、直到 ECanaShadow.canta.bit.TA25 变为 1、指示传输已完成。
我的质询如下:
如果由于内部 DSP 故障或任何意外的系统问题、ECanaShadow.canta.bit.TA25 标志未设置为 1、则系统是否可能陷入无限循环? 此外、您能否提供有关可能发生此情况的条件或可能阻止设置 TA25 位的任何已知原因的信息?
如果您能提供任何指导或说明、我将不胜感激。
非常感谢您的时间和支持。