First of All wich CAN port are you using, I test this example with CAN0 and CAN3 also here is a example using CAN0 of your code hope this help you. also here is a modified library that for me works better. please just check the CAN ports on TC375, this was tested on TC275. Replace CAN0 for any CAN channel you want to use.
CAN_TC_275_library.rar (3.78 KB)
//typedef enum
//{
// IfxMultican_Status_ok = 0x00000000,
// IfxMultican_Status_notInitialised = 0x00000001,
// IfxMultican_Status_wrongParam = 0x00000002,
// IfxMultican_Status_wrongPin = 0x00000004,
// IfxMultican_Status_busHeavy = 0x00000008,
// IfxMultican_Status_busOff = 0x00000010,
// IfxMultican_Status_notSentBusy = 0x00000020,
// IfxMultican_Status_receiveEmpty = 0x00000040,
// IfxMultican_Status_messageLost = 0x00000080,
// IfxMultican_Status_newData = 0x00000100,
// IfxMultican_Status_newDataButOneLost = IfxMultican_Status_messageLost | IfxMultican_Status_newData
//} IfxMultican_Status;
//typedef struct
//{
// uint32 id; /**< \brief CAN message ID */
// IfxMultican_DataLengthCode lengthCode; /**< \brief CAN message data length code */
// uint32 data[2]; /**< \brief CAN message data */
// boolean fastBitRate; /**< \brief CAN FD fast bit rate enable/disable */
//} IfxMultican_Message;
//typedef union
//{
// uint8 bytes[8];
// uint32 dword[2];
//} CANMessagePayloadType;
IfxMultican_Message msg1;
IfxMultican_Status RxStatus;
CANMessagePayloadType CANMessagePayload;
void setup()
{
// put your setup code here, to run once:
SerialASC.begin(115200);
CAN0_Init(100000);
CAN0_RxInit(0x100, 0x1FFFFFFFUL, 8, 11, 0);
SerialASC.print("Multican is Initialized\n\r");
}
void loop()
{
char Local_Str[150];
RxStatus = CAN0_ReceiveMessage(0x100, &msg1, 8);
if ((RxStatus == IfxMultican_Status_noError) && (msg1.id == 0x100))
{
SerialASC.print("New data.");
CANMessagePayload.dword[0] = msg1.data[0];
CANMessagePayload.dword[1] = msg1.data[1];
sprintf(Local_Str, "Responce OK: %02X-%02X-%02X-%02X-%02X-%02X-%02X-%02X", CANMessagePayload.bytes[0], CANMessagePayload.bytes[1], CANMessagePayload.bytes[2], CANMessagePayload.bytes[3], CANMessagePayload.bytes[4], CANMessagePayload.bytes[5], CANMessagePayload.bytes[6], CANMessagePayload.bytes[7]);
SerialASC.println(Local_Str);
}
}