you can try to modify example code to have
FLEXCAN_DRV_ConfigRxMb(INST_CANCOM1, RX_MAILBOX0, &dataInfo0, RX_MB_ID0);
FLEXCAN_DRV_ConfigRxMb(INST_CANCOM1, RX_MAILBOX1, &dataInfo1, RX_MB_ID1);
FLEXCAN_DRV_ConfigRxMb(INST_CANCOM1, RX_MAILBOX2, &dataInfo2, RX_MB_ID2);
FLEXCAN_DRV_Receive(INST_CANCOM1, RX_MAILBOX0, &recvBuff0);
FLEXCAN_DRV_Receive(INST_CANCOM1, RX_MAILBOX1, &recvBuff1);
FLEXCAN_DRV_Receive(INST_CANCOM1, RX_MAILBOX2, &recvBuff2);
while(1)
{
if(FLEXCAN_DRV_GetTransferStatus(INST_CANCOM1, RX_MAILBOX0) == STATUS_SUCCESS)
{
/* process recvBuff0 as needed */
....
/* Start receiving data in RX_MAILBOX0 again. */
FLEXCAN_DRV_Receive(INST_CANCOM1, RX_MAILBOX0, &recvBuff0);
}
if(FLEXCAN_DRV_GetTransferStatus(INST_CANCOM1, RX_MAILBOX1) == STATUS_SUCCESS)
{
/* process recvBuff1 as needed */
....
/* Start receiving data in RX_MAILBOX1 again. */
FLEXCAN_DRV_Receive(INST_CANCOM1, RX_MAILBOX1, &recvBuff1);
}
if(FLEXCAN_DRV_GetTransferStatus(INST_CANCOM1, RX_MAILBOX2) == STATUS_SUCCESS)
{
/* process recvBuff2 as needed */
....
/* Start receiving data in RX_MAILBOX2 again. */
FLEXCAN_DRV_Receive(INST_CANCOM1, RX_MAILBOX2, &recvBuff2);
}
}
BR, Petr