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.

[参考译文] TMDX570LC43HDK:CANTX

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/980838/tmdx570lc43hdk-cantx

器件型号:TMDX570LC43HDK
主题中讨论的其他器件: HALCOGENTMS570LC4357

大家好、

我已经尝试 过 Hercules 教程:CAN Communication in TI Using TMDX570LC43HDK board I used CAN1 driver 中提供的 CANTx 程序。  

我按照本教程配置了"Hercules Tutorial:CAN Communication (Hercules 教程:CAN 通信)"。  

尝试在 CAN 总线分析仪工具中接收数据。 但它没有出现。  

我需要帮助来解决这个问题。  

 

 

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

    您好!

    它应该起作用。

    1.您的设置只有两个 CAN 节点、因此分析仪侧也需要一个上拉电阻器。 我认为分析仪能够上拉总线。

    2、两个节点应使用相同的波特率

    3.检查分析仪的 ID 过滤器以及您传输的消息的 ID

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

    您好、Wang、

    感谢您的快速响应。

    您能否与我分享 CAN TX 和 CAN RX 的 HALCoGen 配置?

    CAN1常规

    CAN TX

    CAN RX

    我需要进行的任何其他配置。

    如果您有任何示例配置和代码、请分享。

    请检查并确认。

    谢谢、此致、

    桑托什

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

    您好、Wang、

    请确认 CAN1 General

     "Hercules 教程:CAN 通信"中计算出的 CAN1时序:

    我已按如下方式进行配置

    请确认以下设置、并在 HALCoGen 中给出示例。

    谢谢

    桑托什。

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

    是否可以重新发布图片或屏幕截图?

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

    您好、Wang、

    我需要 CAN Rx 中断方法的支持、我已经在 CAN1中创建了 CAN TX、在 CAN2中创建了 CAN RX  

    CAN2:节点始终不等于  canREG2   

    /*节点2 -接收完成*/
    if (node=canREG2)

    while (!canIsRxMessageArrived (canREG2、canMESSAGE_BOX1));
    canGetData (canREG2、canMESSAGE_BOX1、Rx_PTR);//复制到 RAM *

    我无法在上面接收的 CAN ID 0x300中接收任何数据。

    CAN1 TX:

    CAN ID 为0x200

    CAN RX:  

    CAN ID 为0x300

    CAN 分析仪我发送数据、但也没有到达断点。 请检查并确认 TMS570LC4357的 CAN 中断代码是否正确。 使用  

    TMDX570LC43HDK。

    代码是  

    /*包含文件*/

    #include "hL_sys_common.h"

    /*用户代码开始(1)*/

    #include "HL_CAN.h"
    #include "hL_sci.h"

    #include "HL_ESM.h"
    #include "hL_sys_core.h"

    #define UART sciREG1
    #define D_COUNT 8.
    #define RX_COUNT 63
    #define size 8

    typedef 结构

    uint8 r1;
    uint8 r2;
    uint8 r3;
    uint8 r3;
    uint8 R4;
    uint8 R5;
    uint8 r6;
    uint8 r7;
    } HX;

    uint32 cnt=0、error =0、TX_DONE =0;
    uint8 TX_DATA[D_COUNT]={0};
    uint8 rx_data[D_count]={0};
    uint8 * TX_PTR =&TX_DATA[0];
    uint8 * rx_ptr =&rx_data[0];
    UINT8 D1[D_COUNT]={0};
    uint8 *dptr=0;
    Hx Tx_DATA;
    void sciDisplayText (sciBASE-t * sci、uint8 *文本、uint32长度);
    空等待(uint32时间);
    空 dumpdata();

    int main (空)

    _enable_interrupt_();


    sciInit();


    canInit();

    canEnableErrorNotification (canREG1);
    canEnableErrorNotification (canREG2);


    dumpdata();

    while (1)


    canTransmit (canREG1、canMESSAGE_BOX1、&TX_DATA[0]);

    /*用户代码结束*/

    空 dumpCMPRdata()

    TX_DATA.R1= 0xC8;
    TX_DATA.R2=0x01;
    TX_DATA.R3= 0xFA;
    TX_DATA.R3 = 0x05;
    TX_DATA.R4 = 0x10;
    TX_DATA.R5 = 0x20;
    TX_DATA.R6 = 0x30;
    TX_DATA.R7 = 0x88;

    /*for (i=0;i<8;i++)*/

    TX_DATA[0]= Tx_DATA.R1;
    TX_DATA[1]= Tx_DATA.R2;
    TX_DATA[2]= Tx_DATA.R3;
    TX_DATA[3]= Tx_DATA.R3;
    TX_DATA[4]= Tx_DATA.R4;
    TX_DATA[5]= Tx_DATA.R5;
    TX_DATA[6]= Tx_DATA.R6;
    TX_DATA[7]= Tx_data.R7;

    void canMessageNotification (canbase_t *节点、uint32 MessageBox)

    /*节点1 -传输请求*/
    if (node=canREG1)

    TX_DONE=1;/*确认传输请求*/

    /*节点2 -接收完成*/
    if (node=canREG2)

    while (!canIsRxMessageArrived (canREG2、canMESSAGE_BOX1));
    canGetData (canREG2、canMESSAGE_BOX1、Rx_PTR);//复制到 RAM *


    /*注意:由于两个节点上都只使用了消息框1,因此我们不在此进行检查。*/

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

    只需读取代码、我想您没有在 VIM 模块中启用 CAN 中断:

    如果在 CAN 配置中选择了低优先级、请启用 VIM 通道42