diff options
| -rw-r--r-- | ports/mimxrt/sdcard.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/ports/mimxrt/sdcard.c b/ports/mimxrt/sdcard.c index 20f76cc88..517206788 100644 --- a/ports/mimxrt/sdcard.c +++ b/ports/mimxrt/sdcard.c @@ -360,7 +360,8 @@ static status_t sdcard_transfer_blocking(USDHC_Type *base, usdhc_handle_t *handl status = kStatus_Timeout; for (int i = 0; i < timeout_ms * 100; i++) { // Wait until Data0 is low any more. Low indicates "Busy". - if ((transfer->data->txData == NULL) || (USDHC_GetPresentStatusFlags(base) & (uint32_t)kUSDHC_Data0LineLevelFlag) != 0) { + if (((transfer->data->txData == NULL) && (transfer->data->rxData == NULL)) || + (USDHC_GetPresentStatusFlags(base) & (uint32_t)kUSDHC_Data0LineLevelFlag) != 0) { // Not busy anymore or no TX-Data status = USDHC_TransferBlocking(base, &dma_config, transfer); if (status != kStatus_Success) { |
