From e15e30add2c483b0154af1c8b6f7fcbf0bcd7d7d Mon Sep 17 00:00:00 2001 From: Liu Hancheng Date: Sun, 5 Jan 2025 20:00:15 +0800 Subject: [PATCH] fix: fix qspi waiting condition --- embassy-stm32/src/qspi/mod.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/embassy-stm32/src/qspi/mod.rs b/embassy-stm32/src/qspi/mod.rs index 0c65d0556..ffa9798b8 100644 --- a/embassy-stm32/src/qspi/mod.rs +++ b/embassy-stm32/src/qspi/mod.rs @@ -172,7 +172,7 @@ impl<'d, T: Instance, M: PeriMode> Qspi<'d, T, M> { }); for b in buf { - while !T::REGS.sr().read().tcf() && !T::REGS.sr().read().ftf() {} + while !T::REGS.sr().read().tcf() && (T::REGS.sr().read().flevel() == 0) {} *b = unsafe { (T::REGS.dr().as_ptr() as *mut u8).read_volatile() }; } @@ -402,7 +402,10 @@ impl<'d, T: Instance> Qspi<'d, T, Async> { // STM32H7 does not have dmaen #[cfg(not(stm32h7))] - T::REGS.cr().modify(|v| v.set_dmaen(true)); + T::REGS.cr().modify(|v| { + v.set_en(true); + v.set_dmaen(true) + }); transfer }