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.

CAN分析仪和28377D通信问题



大家好!

我最近用28377D和CAN分析仪通信时遇到了一些问题,搞了好多天没想明白,想在此请教。

目的:实现上位机发送数据帧通过CAN分析仪给到一个驱动器控制板上,然后又通过驱动器发送数据给到分析仪;

芯片:28377D;CAN分析仪,CAN配套上位界面,TI例程:can_loopback

例程代码:

int
main(void)
{
    InitSysCtrl();
    //对应28377D引脚
    InitGpio();

    GPIO_SetupPinMux(13, GPIO_MUX_CPU1, 2); //GPIO13 - CANRXB
    GPIO_SetupPinMux(12, GPIO_MUX_CPU1, 2);  //GPIO12 - CANTXB
    GPIO_SetupPinOptions(13, GPIO_INPUT, GPIO_ASYNC);
    GPIO_SetupPinOptions(12, GPIO_OUTPUT, GPIO_PUSHPULL);

    CANInit(CANB_BASE);
    CANClkSourceSelect(CANB_BASE, 0);
CANBitRateSet(CANB_BASE, 200000000, 250000); DINT; InitPieCtrl(); IER = 0x0000; IFR = 0x0000; InitPieVectTable(); // HWREG(CANB_BASE + CAN_O_CTL) |= CAN_CTL_TEST; // HWREG(CANB_BASE + CAN_O_TEST) = CAN_TEST_EXL; // HWREG(CANB_BASE + CAN_O_TEST) = CAN_TEST_RX;
CANEnable(CANB_BASE);
*(unsigned long *)ucTXMsgData = 8; sTXCANMessage.ui32MsgID = 5; sTXCANMessage.ui32MsgIDMask = 0; sTXCANMessage.ui32Flags = MSG_OBJ_TX_INT_ENABLE; sTXCANMessage.ui32MsgLen = sizeof(ucTXMsgData); sTXCANMessage.pucMsgData = ucTXMsgData; *(unsigned long *)ucRXMsgData = 8; sRXCANMessage.ui32MsgID = 5; sRXCANMessage.ui32MsgIDMask = 0; sRXCANMessage.ui32Flags = MSG_OBJ_NO_FLAGS; sRXCANMessage.ui32MsgLen = sizeof(ucRXMsgData); sRXCANMessage.pucMsgData = ucRXMsgData; CANMessageSet(CANB_BASE, 2, &sRXCANMessage, MSG_OBJ_TYPE_RX); for(;;) { CANMessageSet(CANB_BASE, 1, &sTXCANMessage, MSG_OBJ_TYPE_TX); DELAY_US(1000*1000); CANMessageGet(CANB_BASE, 2, &sRXCANMessage, true); if((*(unsigned long *)ucTXMsgData) != (*(unsigned long *)ucRXMsgData)) { //asm(" ESTOP0") } g_ulMsgCount++; (*(unsigned long *)ucTXMsgData)++; } }

我把测试模式给注释掉了,然后连接测试板用CCS在线调试

现象:CAN分析仪能够接收测试板发来的数据,而且是不断重复发送,发送好几条后数据才++,通过上位机界面设置好消息对象ID和发送的数据,发送后通过CCS的DBUG界面观察数组变量,没有接收到数据,我用了很多方法测试了,都不知道是什么问题。

我是不是漏掉什么了,我该如何解决,希望工程师们能给点建议。

第一次发帖,如有表述错误,望请纠正。