diff options
Diffstat (limited to 'embassy-stm32/src/macros.rs')
| -rw-r--r-- | embassy-stm32/src/macros.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/embassy-stm32/src/macros.rs b/embassy-stm32/src/macros.rs index 7f8076043..dcd25cbe9 100644 --- a/embassy-stm32/src/macros.rs +++ b/embassy-stm32/src/macros.rs | |||
| @@ -106,7 +106,14 @@ macro_rules! new_pin { | |||
| 106 | ($name:ident, $aftype:expr, $speed:expr, $pull:expr) => {{ | 106 | ($name:ident, $aftype:expr, $speed:expr, $pull:expr) => {{ |
| 107 | let pin = $name.into_ref(); | 107 | let pin = $name.into_ref(); |
| 108 | pin.set_as_af_pull(pin.af_num(), $aftype, $pull); | 108 | pin.set_as_af_pull(pin.af_num(), $aftype, $pull); |
| 109 | pin.set_speed($speed); | 109 | // Do not call set_speed on AFType::Input, as MODE and CNF bits are not independent |
| 110 | // for gpio_v1 | ||
| 111 | match $aftype { | ||
| 112 | crate::gpio::AFType::Input => {} | ||
| 113 | _ => { | ||
| 114 | pin.set_speed($speed); | ||
| 115 | } | ||
| 116 | }; | ||
| 110 | Some(pin.map_into()) | 117 | Some(pin.map_into()) |
| 111 | }}; | 118 | }}; |
| 112 | } | 119 | } |
