diff --git a/components/drivers_nrf/spi_master/nrf_drv_spi.c b/components/drivers_nrf/spi_master/nrf_drv_spi.c index 8d7b4d9..8f061b5 100755 --- a/components/drivers_nrf/spi_master/nrf_drv_spi.c +++ b/components/drivers_nrf/spi_master/nrf_drv_spi.c @@ -324,15 +324,14 @@ ret_code_t nrf_drv_spi_transfer(nrf_drv_spi_t const * const p_instance, nrf_spim_event_clear(p_spim, NRF_SPIM_EVENT_ENDRX); p_cb->tx_done = false; p_cb->rx_done = false; - nrf_spim_event_clear(p_spim, NRF_SPIM_EVENT_STOPPED); - - nrf_spim_task_trigger(p_spim, NRF_SPIM_TASK_START); - if (p_cb->handler) { p_cb->transfer_in_progress = true; } - else + nrf_spim_event_clear(p_spim, NRF_SPIM_EVENT_STOPPED); + nrf_spim_task_trigger(p_spim, NRF_SPIM_TASK_START); + + if (!p_cb->handler) { while (!nrf_spim_event_check(p_spim, NRF_SPIM_EVENT_ENDTX) || !nrf_spim_event_check(p_spim, NRF_SPIM_EVENT_ENDRX)) {}