diff options
Diffstat (limited to 'drivers/src')
-rw-r--r-- | drivers/src/fsl_flexcan.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/src/fsl_flexcan.c b/drivers/src/fsl_flexcan.c index 45db478..2a07dc5 100644 --- a/drivers/src/fsl_flexcan.c +++ b/drivers/src/fsl_flexcan.c @@ -1295,12 +1295,12 @@ void FLEXCAN_TransferHandleIRQ(CAN_Type *base, flexcan_handle_t *handle) break; case kFLEXCAN_RxFifoFrameAvlFlag: - //status = FLEXCAN_ReadRxFifo(base, handle->rxFifoFrameBuf); - //if (kStatus_Success == status) - //{ + status = FLEXCAN_ReadRxFifo(base, handle->rxFifoFrameBuf); + if (kStatus_Success == status) + { status = kStatus_FLEXCAN_RxFifoIdle; - //} - //FLEXCAN_TransferAbortReceiveFifo(base, handle); + } + FLEXCAN_TransferAbortReceiveFifo(base, handle); break; default: @@ -1354,7 +1354,10 @@ void FLEXCAN_TransferHandleIRQ(CAN_Type *base, flexcan_handle_t *handle) /* Calling Callback Function if has one. */ if (handle->callback != NULL) - reschedule = handle->callback(base, handle, status, result, handle->userData); + { + if (handle->callback(base, handle, status, result, handle->userData) == pdTRUE) + reschedule = pdTRUE; + } /* Reset return status */ status = kStatus_FLEXCAN_UnHandled; |