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.

[参考译文] TMS320F280049:CAN LEC 值

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1058436/tms320f280049-can-lec-value

器件型号:TMS320F280049

大家好、

我正在写入以检查 CAN_ES [LEC]位的定义。

如数据表中所述、值0x0表示无错误、值0x7表示自上次读取以来无错误。 这两个值之间的区别是什么?  

此致、

Brian  

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

    您好 Brian、

    LEC 值为"0"表示没有错误、表示 未检测到填充、ACK、位和 CRC 错误。  然而、"7"表示在 CPU 上次读取错误和状态寄存器期间未检测到 CAN 总线事件。  对错误状态寄存器的任何读取访问都会将 LEC 重新初始化为"7"、因此"7"实际上并不表示没有错误。

    此致、

    Joseph

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

    您好、Joseph、

    还是有点困惑。 为了简单起见、在正常情况下、如果 MCU 读取 LEC 值、我们应该看到0还是7?  

    此致、

    Brian

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

    您好 Brian、

    同意、这仍然令人困惑、因此我所做的是在我的设置中运行发送和接收事务、同时在 CCS 中监控 CAN_ES 寄存器。  在成功发送/接收消息后、LEC 将在 CCS 寄存器窗口中读为"0"、表示没有遇到错误。  如果添加一个代码来读取状态寄存器、如下所示:

        temp = CanaRegs.CAN_ES.all;

    LEC 将在 CCS 寄存器窗口中读为"7"。

    这证明了 TRM 中 CAN_ES 的寄存器/位描述的状态。  希望这能澄清您的困惑。

    此致、

    Joseph