Other Parts Discussed in Thread: SYSBIOS
你好,我使用IWR1642的CAN FD发现,当我只注册了4个及以下的接收CAN ID时,程序可以运行。但我注册了第五个CAN ID后程序就不能执行了~~
注册CAN ID的代码如下,麻烦帮看看有什么问题~~
CANFD_MsgObjHandle rxMsgObjHandle[5];
/* Setup the receive message object */
{
CANFD_MCANMsgObjCfgParams rxMsgObjectParams;
int32_t errCode = 0;
rxMsgObjectParams.direction = CANFD_Direction_RX;
rxMsgObjectParams.msgIdType = CANFD_MCANXidType_11_BIT;
rxMsgObjectParams.msgIdentifier = 0x100;
rxMsgObjHandle[0] = CANFD_createMsgObject (canHandle, &rxMsgObjectParams, &errCode);
if (rxMsgObjHandle[0] == NULL)
{
System_printf ("Error: CANFD create Rx message object failed [Error code %d]\n", errCode);
return -1;
}
}
{
CANFD_MCANMsgObjCfgParams rxMsgObjectParams;
int32_t errCode = 0;
rxMsgObjectParams.direction = CANFD_Direction_RX;
rxMsgObjectParams.msgIdType = CANFD_MCANXidType_11_BIT;
rxMsgObjectParams.msgIdentifier = 0x200;
rxMsgObjHandle[1] = CANFD_createMsgObject (canHandle, &rxMsgObjectParams, &errCode);
if (rxMsgObjHandle[1] == NULL)
{
System_printf ("Error: CANFD create Rx message object failed [Error code %d]\n", errCode);
return -1;
}
}
{
CANFD_MCANMsgObjCfgParams rxMsgObjectParams;
int32_t errCode = 0;
rxMsgObjectParams.direction = CANFD_Direction_RX;
rxMsgObjectParams.msgIdType = CANFD_MCANXidType_11_BIT;
rxMsgObjectParams.msgIdentifier = 0x300;
rxMsgObjHandle[2] = CANFD_createMsgObject (canHandle, &rxMsgObjectParams, &errCode);
if (rxMsgObjHandle[2] == NULL)
{
System_printf ("Error: CANFD create Rx message object failed [Error code %d]\n", errCode);
return -1;
}
}
{
CANFD_MCANMsgObjCfgParams rxMsgObjectParams;
int32_t errCode = 0;
rxMsgObjectParams.direction = CANFD_Direction_RX;
rxMsgObjectParams.msgIdType = CANFD_MCANXidType_11_BIT;
rxMsgObjectParams.msgIdentifier = 0x400;
rxMsgObjHandle[3] = CANFD_createMsgObject (canHandle, &rxMsgObjectParams, &errCode);
if (rxMsgObjHandle[3] == NULL)
{
System_printf ("Error: CANFD create Rx message object failed [Error code %d]\n", errCode);
return -1;
}
}
// {
// CANFD_MCANMsgObjCfgParams rxMsgObjectParams;
// int32_t errCode = 0;
// rxMsgObjectParams.direction = CANFD_Direction_RX;
// rxMsgObjectParams.msgIdType = CANFD_MCANXidType_11_BIT;
// rxMsgObjectParams.msgIdentifier = 0x500;
// rxMsgObjHandle[4] = CANFD_createMsgObject (canHandle, &rxMsgObjectParams, &errCode);
// if (rxMsgObjHandle[4] == NULL)
// {
// System_printf ("Error: CANFD create Rx message object failed [Error code %d]\n", errCode);
// return -1;
// }
// }