diff --git a/embassy-stm32/src/rcc/mod.rs b/embassy-stm32/src/rcc/mod.rs index 6ad90eb8..3c5b53b0 100644 --- a/embassy-stm32/src/rcc/mod.rs +++ b/embassy-stm32/src/rcc/mod.rs @@ -62,20 +62,26 @@ crate::pac::peripheral_rcc!( ($inst:ident, $enable:ident, $reset:ident, $perien:ident, $perirst:ident) => { impl sealed::RccPeripheral for peripherals::$inst { fn enable() { - unsafe { - crate::pac::RCC.$enable().modify(|w| w.$perien(true)); - } + critical_section::with(|_| { + unsafe { + crate::pac::RCC.$enable().modify(|w| w.$perien(true)); + } + }) } fn disable() { - unsafe { - crate::pac::RCC.$enable().modify(|w| w.$perien(false)); - } + critical_section::with(|_| { + unsafe { + crate::pac::RCC.$enable().modify(|w| w.$perien(false)); + } + }) } fn reset() { - unsafe { - crate::pac::RCC.$reset().modify(|w| w.$perirst(true)); - crate::pac::RCC.$reset().modify(|w| w.$perirst(false)); - } + critical_section::with(|_| { + unsafe { + crate::pac::RCC.$reset().modify(|w| w.$perirst(true)); + crate::pac::RCC.$reset().modify(|w| w.$perirst(false)); + } + }) } }