Hi Petr.
Thanks for taking a look at my post and taking the time to reply.
In my case, I am using the blocking version of the receive call, FLEXCAN_DRV_ReceiveBlocking(), which returns STATUS_SUCCESS, so I would not have to also call FLEXCAN_DRV_GetTransferStatus(), correct?
Even if I place another receive, like below, the second receive returns a STATUS_TIMEOUT:
if (STATUS_SUCCESS == FLEXCAN_DRV_Send(INST_HSCAN, 0, &tx_info, msg_id, mb_data)) {
if (STATUS_SUCCESS == FLEXCAN_DRV_ReceiveBlocking(INST_HSCAN, 1, &data, 100)) {
// Gets here because the first frame is received...
if (STATUS_SUCCESS == FLEXCAN_DRV_ReceiveBlocking(INST_HSCAN, 1, &data, 100)) {
// Does not get in here because the second receive returns STATUS_TIMEOUT...
}
}
}
Am I missing something?
I will try testing out the FIFO, but I would prefer to use FLEXCAN_DRV_ReceiveBlocking() - do you have any sample code that uses this method to receive multiple frames?
Thanks again!
-Greg