aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embassy-stm32/src/spi/mod.rs7
1 files changed, 3 insertions, 4 deletions
diff --git a/embassy-stm32/src/spi/mod.rs b/embassy-stm32/src/spi/mod.rs
index 3b39f0fd2..1b2cdf19e 100644
--- a/embassy-stm32/src/spi/mod.rs
+++ b/embassy-stm32/src/spi/mod.rs
@@ -418,10 +418,6 @@ impl<'d, T: Instance, Tx, Rx> Spi<'d, T, Tx, Rx> {
418 }); 418 });
419 } 419 }
420 420
421 // TODO: This is unnecessary in some versions because
422 // clearing SPE automatically clears the fifos
423 flush_rx_fifo(T::REGS);
424
425 let tx_request = self.txdma.request(); 421 let tx_request = self.txdma.request();
426 let tx_dst = T::REGS.tx_ptr(); 422 let tx_dst = T::REGS.tx_ptr();
427 unsafe { self.txdma.start_write(tx_request, data, tx_dst) } 423 unsafe { self.txdma.start_write(tx_request, data, tx_dst) }
@@ -440,6 +436,9 @@ impl<'d, T: Instance, Tx, Rx> Spi<'d, T, Tx, Rx> {
440 436
441 tx_f.await; 437 tx_f.await;
442 438
439 // flush here otherwise `finish_dma` hangs waiting for the rx fifo to empty
440 flush_rx_fifo(T::REGS);
441
443 finish_dma(T::REGS); 442 finish_dma(T::REGS);
444 443
445 Ok(()) 444 Ok(())