Hi,
change a code little bit...
FlexCAN_Ip_SetStartMode(INST_FLEXCAN_0);
FlexCAN_Ip_ConfigRxMb(INST_FLEXCAN_0, RX_MB_IDX, &rx_info, MSG_ID);
FlexCAN_Ip_Receive(INST_FLEXCAN_0, RX_MB_IDX, &RxData, false);
while(1)
{
if(FlexCAN_Ip_GetTransferStatus(INST_FLEXCAN_0, RX_MB_IDX) == FLEXCAN_STATUS_SUCCESS)
{
FlexCAN_Ip_Send(INST_FLEXCAN_0, TX_MB_IDX, &tx_info, MSG_ID, &RxData);
FlexCAN_Ip_Receive(INST_FLEXCAN_0, RX_MB_IDX, &RxData, false);
}
}
This is if receive does not use a polling option. If you want to have pooling one you need to call FlexCAN_Ip_MainFunctionRead to process received frame and update driver status.
Do not clear MB flag, it is done by driver.
BR, Petr