aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embassy-stm32/src/gpio.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/embassy-stm32/src/gpio.rs b/embassy-stm32/src/gpio.rs
index 30f900316..b6982e91a 100644
--- a/embassy-stm32/src/gpio.rs
+++ b/embassy-stm32/src/gpio.rs
@@ -511,10 +511,19 @@ pub(crate) mod sealed {
511 self.set_as_analog(); 511 self.set_as_analog();
512 } 512 }
513 513
514 #[cfg(gpio_v2)]
515 #[inline] 514 #[inline]
516 unsafe fn set_speed(&self, speed: Speed) { 515 unsafe fn set_speed(&self, speed: Speed) {
517 let pin = self._pin() as usize; 516 let pin = self._pin() as usize;
517
518 #[cfg(gpio_v1)]
519 {
520 let crlh = if pin < 8 { 0 } else { 1 };
521 self.block().cr(crlh).modify(|w| {
522 w.set_mode(pin % 8, speed.into());
523 });
524 }
525
526 #[cfg(gpio_v2)]
518 self.block() 527 self.block()
519 .ospeedr() 528 .ospeedr()
520 .modify(|w| w.set_ospeedr(pin, speed.into())); 529 .modify(|w| w.set_ospeedr(pin, speed.into()));