From d8631f96d95b42cdf963b7a836f966570981d884 Mon Sep 17 00:00:00 2001 From: Sebastian Gabrielli Date: Tue, 22 Apr 2025 12:47:33 +0200 Subject: [PATCH] Disable SPI before changing config, then re-enable SPI on STM32 Fixes #2259 --- embassy-stm32/src/spi/mod.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/embassy-stm32/src/spi/mod.rs b/embassy-stm32/src/spi/mod.rs index 6578aa1aa..9e2ba093a 100644 --- a/embassy-stm32/src/spi/mod.rs +++ b/embassy-stm32/src/spi/mod.rs @@ -284,6 +284,10 @@ impl<'d, M: PeriMode> Spi<'d, M> { #[cfg(any(spi_v3, spi_v4, spi_v5))] { + self.info.regs.cr1().modify(|w| { + w.set_spe(false); + }); + self.info.regs.cfg2().modify(|w| { w.set_cpha(cpha); w.set_cpol(cpol); @@ -292,6 +296,10 @@ impl<'d, M: PeriMode> Spi<'d, M> { self.info.regs.cfg1().modify(|w| { w.set_mbr(br); }); + + self.info.regs.cr1().modify(|w| { + w.set_spe(true); + }); } Ok(()) }