diff options
| author | Grant Miller <[email protected]> | 2022-05-08 14:41:59 -0500 |
|---|---|---|
| committer | Grant Miller <[email protected]> | 2022-05-08 14:43:37 -0500 |
| commit | b230ac9c1a2e33da7e2996284ae5dfdc1b832a30 (patch) | |
| tree | d026d1ea2e28f059f92df9a41f78b23e03edfe13 | |
| parent | 49ae26f3846930e6a89cc10d176fbd0403b4d0c2 (diff) | |
stm32/gpio: Add support for `set_speed` for gpio v1
| -rw-r--r-- | embassy-stm32/src/gpio.rs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/embassy-stm32/src/gpio.rs b/embassy-stm32/src/gpio.rs index 30f900316..d5941c2f9 100644 --- a/embassy-stm32/src/gpio.rs +++ b/embassy-stm32/src/gpio.rs | |||
| @@ -511,10 +511,20 @@ pub(crate) mod sealed { | |||
| 511 | self.set_as_analog(); | 511 | self.set_as_analog(); |
| 512 | } | 512 | } |
| 513 | 513 | ||
| 514 | #[cfg(gpio_v2)] | 514 | #[cfg(any(gpio_v1, gpio_v2))] |
| 515 | #[inline] | 515 | #[inline] |
| 516 | unsafe fn set_speed(&self, speed: Speed) { | 516 | unsafe fn set_speed(&self, speed: Speed) { |
| 517 | let pin = self._pin() as usize; | 517 | let pin = self._pin() as usize; |
| 518 | |||
| 519 | #[cfg(gpio_v1)] | ||
| 520 | { | ||
| 521 | let crlh = if pin < 8 { 0 } else { 1 }; | ||
| 522 | self.block().cr(crlh).modify(|w| { | ||
| 523 | w.set_mode(pin % 8, speed.into()); | ||
| 524 | }); | ||
| 525 | } | ||
| 526 | |||
| 527 | #[cfg(gpio_v2)] | ||
| 518 | self.block() | 528 | self.block() |
| 519 | .ospeedr() | 529 | .ospeedr() |
| 520 | .modify(|w| w.set_ospeedr(pin, speed.into())); | 530 | .modify(|w| w.set_ospeedr(pin, speed.into())); |
