From 8680c8689419ca47ed9d31e8bb7b6954a51cc534 Mon Sep 17 00:00:00 2001
From: Samuel Tardieu <sam@rfc1149.net>
Date: Sat, 27 Jul 2024 15:04:02 +0200
Subject: [PATCH] embassy-stm32: wait for BSY flag to clear before flashing

While not waiting for the BSY flag to clear works on STM32F103C8T6, it
does not on APM32F103C8T6. Only one half-word gets written while the
other one gets lost.
---
 embassy-stm32/src/flash/f1f3.rs | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/embassy-stm32/src/flash/f1f3.rs b/embassy-stm32/src/flash/f1f3.rs
index e66842e31..ff7f810ea 100644
--- a/embassy-stm32/src/flash/f1f3.rs
+++ b/embassy-stm32/src/flash/f1f3.rs
@@ -42,9 +42,11 @@ pub(crate) unsafe fn blocking_write(start_address: u32, buf: &[u8; WRITE_SIZE])
 
         // prevents parallelism errors
         fence(Ordering::SeqCst);
+
+        wait_ready_blocking()?;
     }
 
-    wait_ready_blocking()
+    Ok(())
 }
 
 pub(crate) unsafe fn blocking_erase_sector(sector: &FlashSector) -> Result<(), Error> {