diff options
| -rw-r--r-- | embassy-stm32/src/gpio.rs | 11 |
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())); |
