Hi,
The MSG_OBJ_DATA_LOST flag is set, but is never cleared by CANMessageGet.
I tried this but nothing happened.
My code is:
while(1) { ROM_CANMessageSet(CAN0_BASE, TXOBJECT, &g_sCAN0TxMessage, MSG_OBJ_TYPE_TX_REMOTE); delay(50); // wait 100ms if(g_ui32ErrFlag != 0) { // check for errors //UARTprintf("CAN Bus Error\n"); CANErrorHandler(); } if(g_bRXFlag) { // rx interrupt has occured g_sCAN0RxMessage.pui8MsgData = msgData; // set pointer to rx buffer ROM_CANMessageGet(CAN0_BASE, RXOBJECT, &g_sCAN0RxMessage, MSG_OBJ_TYPE_RX); // read CAN message object RXOBJECT from CAN peripheral g_bRXFlag = 0; // clear rx flag if(!(g_sCAN0RxMessage.ui32Flags & MSG_OBJ_DATA_LOST)) { UARTprintf("CAN_ID: 0x%2x\t", g_sCAN0RxMessage.ui32MsgID); UARTprintf("Data: %02x %02x %02x %02x\n", msgData[3], msgData[2], msgData[1], msgData[0]); } else { g_sCAN0RxMessage.ui32Flags &= ~MSG_OBJ_DATA_LOST; ROM_CANMessageGet(CAN0_BASE, RXOBJECT, &g_sCAN0RxMessage, MSG_OBJ_TYPE_RX); } } }
Any hits.
Regards
Andrés