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.

[参考译文] TMS320F280025:启用 Tx 和 Rx 时、TMS320F280025C CAN 通信错误

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1113424/tms320f280025-tms320f280025c-can-communication-error-when-tx-and-rx-are-enabled

器件型号:TMS320F280025
主题中讨论的其他器件:C2000WARE

您好、Joseph、

我将查看 TI C:\ti\c2000\C2000Ware_4_01_00_00\driverlib\f28002x\examples\CAN\CAN_Ex5_transmit _receive.c 中的同一示例、我进行了小幅修改、以便能够发送和接收消息。 我主要修改了 obj ID (请参阅下面的内容)并删除了##ifdef 传输

#define TX_MSG_OBJ_ID 1.

#define RX_MSG_OBJ_ID 2.

我使用矢量大小写以100ms 发送帧、通过此设置、我可以发送和接收消息、但是、我偶尔会在 Tx 和 Rx 中收到中断错误。 您知道这是为什么发生的吗? 在执行 Tx (CAN_sendMessage)之前,是否需要添加额外的检查?  

谢谢!

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

    您好!

    我不确定是否保存了此问题与以下链接相关的信息、以下是我尝试参考的上一个主题。

    TMS320F280025:CAN 中断:收到中断时 RxOK 和消息目标编号之间的关系- C2000微控制器论坛- C2000 ︎ 微控制器- TI E2E 支持论坛

    此致

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

    您好、Jarold、


    感谢您的提问! 在发送/接收错误时序期间、您是否可以对 TX 和 RX 引脚进行示波器捕获?

    我还将与在您所指主题上工作的 Joseph 联系。

    此致、

    Vince

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

    您好、Jarold、

    除了错误期间的示波器捕获之外、我还有一些其他需要请求的项目:

    • 您能否尝试确保在执行检查时忽略 TXOK 和 RXOK? 基本来说、我们不想在其中任何一个都可以的情况下设置"errorFlag=1 "。 您应该可以按如下方式修改 if 语句:

      if(((   status  & ~(CAN_STATUS_TXOK | CAN_STATUS_RXOK)) != CAN_STATUS_LEC_MSK) &&
          ((  status  & ~(CAN_STATUS_TXOK | CAN_STATUS_RXOK)) != CAN_STATUS_LEC_NONE))
      {
          //
          // Set a flag to indicate some errors may have occurred.
          //
          errorFlag = 1;
      }

      • 在以下两种情况下、您能否在故障期间提供 CAN_ES 寄存器值:
        • 发送过程中出现故障
        • 接收期间失败
        • 此外、如果每次都有相同的错误、请告知我。

      此致、

      Vince