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.

TMS320F280049C: CANB的初始化

Part Number: TMS320F280049C

以下是我的CANB的初始化程序,麻烦帮我看看哪里出了问题。由原来的CANA改CANB ,原来CANA的时候是好用的修改成CANB就不好用了。

GPIO_setPinConfig(DEVICE_GPIO_CFG_CANRXB);
GPIO_setPinConfig(DEVICE_GPIO_CFG_CANTXB);
CAN_initModule(CANB_BASE);
CAN_setBitRate(CANB_BASE, DEVICE_SYSCLK_FREQ, 500000, 20);

EPWM_INIT_GPIO();
EPWM_INIT_func();
PwmEnable();

Control_Init(); //控制参数初始化

EINT; //Enable interrupts globally
ERTM;

CAN_enableTestMode(CANB_BASE, CAN_TEST_EXL);
CAN_setupMessageObject(CANB_BASE, 1, 0x18102700, CAN_MSG_FRAME_EXT,
CAN_MSG_OBJ_TYPE_TX, 0x0, CAN_MSG_OBJ_NO_FLAGS ,
MSG_DATA_LENGTH);
CAN_setupMessageObject(CANB_BASE, 2, 0x18102700, CAN_MSG_FRAME_EXT,
CAN_MSG_OBJ_TYPE_RX, 0x0, CAN_MSG_OBJ_USE_EXT_FILTER,
MSG_DATA_LENGTH);
CAN_startModule(CANB_BASE);
temp_txMsgData[0]=0x1234;
temp_txMsgData[1]=0x5678;
txMsgData[0] = temp_txMsgData[0]>>8;
txMsgData[1] = temp_txMsgData[0]&0xFF;
txMsgData[2] = temp_txMsgData[1]>>8;
txMsgData[3] = temp_txMsgData[1]&0xFF;
*(uint16_t *)rxMsgData = 0;

while(1)
{
CAN_sendMessage(CANB_BASE, 1, MSG_DATA_LENGTH, txMsgData);
DEVICE_DELAY_US(500000);
if (CAN_readMessage(CANB_BASE, 2, rxMsgData))
{
// Check that received data matches sent data.
// Device will halt here during debug if data doesn't match.

if((txMsgData[0] != rxMsgData[0])||(txMsgData[1] != rxMsgData[1])||
(txMsgData[2] != rxMsgData[2])||(txMsgData[3] != rxMsgData[3]))
{
Example_Fail = 1;
asm(" ESTOP0");
}
else
{

temp_rxMsgData[0]=rxMsgData[0]<<8|rxMsgData[1];
temp_rxMsgData[1]=rxMsgData[2]<<8|rxMsgData[3];
// Increment message received counter
msgCount++;
Example_PassCount++;
}
}
else
{
//
// Device will halt here during debug if no new data was received.
//
Example_Fail = 1;
asm(" ESTOP0");
}
txMsgData[0] += 0x01;
txMsgData[1] += 0x01;
if(txMsgData[0] > 0xFF)
{
txMsgData[0] = 0;
}
if(txMsgData[1] > 0xFF)
{
txMsgData[1] = 0;
}
}
}