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.

[参考译文] TMS470MF06607:CAN 接收报文对象 ID

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/595269/tms470mf06607-can-received-message-object-id

器件型号:TMS470MF06607
主题中讨论的其他器件: HALCOGEN

您好、先生、

我使用的是 TMS470MF06607微控制器。

我成功进行了 CAN 通信。 我尝试从任何消息对象 ID 接收数据。 我也可以接收任何消息对象 ID。

您能告诉我,从哪里可以获得收到的消息对象 ID 吗? 我想知道接收到的数据的完整帧。

此致

Arun Kumar.N

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否使用了 HALCoGen? 如果是这样,则可以在调用 canGetData()后调用函数 canGetID()。 读取操作时、实际的报文 ID 会返回到 IF2ARB 寄存器中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、先生、

    是的。 我正在使用 HALCOGEN。 halcogen 生成了代码。 在该 CAN.c 文件 canGetID()中,此函数不可用。 如果我尝试使用它、则意味着我得到了错误。 您能告诉我这方面的解决方案吗?


    此致
    Arun Kumar.N
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否会显示您尝试使用的代码行? 您看到了什么误差?
    您是否正在使用操作系统?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    请使用此函数获取 CAN ID。 代码将 IF2用于数据 RX、将 IF1用于数据 TX。:

    uint32_t canGetID (canBASE-t *节点、uint32_t MessageBox)

       uint32_t  msgBoxID = 0U;

       /**-等待 IF2就绪可供使用*/
       while (node->IF2STAT & 0x80);

       /**-为配置 IF2
       *    -消息方向-读取
       *    -数据读取
       *    -清除报文对象中的 NewDat 位。
       *
       NOD->IF2CMD = 0x20U;

       /**-将数据复制到 IF2中*/
       节点->IF2NO = MessageBox;

       /**-等待数据被复制到 IF2中*/
       while (node->IF2STAT & 0x80);

       /*从仲裁寄存器读取消息框 ID。 *
       msgBoxID =(节点->IF2ARB & 0x1FFFFFFFU);

       返回 msgBoxID;