I am trying to send a 29 bit CAN identifier. What I’m seeing on my CANAlyzer is that the ID is truncated to 11 bits. For instance, this code…
canBuf.id = 0xFFFF; // CAN frame ID
canBuf.canMsgFlags = 1; // set to 29 bit
memcpy(canBuf.data, data, sizeof(data));
canBuf.dataLen = 8;
if (Imx6Can_Write(hCan, &canBuf))
{
printf("\nCAN Transmit: Frame ID = 0x%x Remote/Data Frame = %s\nData:", canBuf.id, (canBuf.canMsgFlags & CanMsgFlags_RTR ? "REMOTE" : "DATA"));
// display Transmit data
for (i = 0; i < 8; i++)
{
printf(" %d", canBuf.data[i]);
}
}
Results in console output of:
CAN Transmit: Frame ID = 0xffff Remote/Data Frame = DATA
Data: 0 1 2 3 4 5 6 7
But the CANAlyzer shows
How can I get 29 bit IDs working?
Library version: 2.0, 2017-05-24
Thanks,
Shawn