diff options
| -rw-r--r-- | embassy-stm32/src/gpio.rs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/embassy-stm32/src/gpio.rs b/embassy-stm32/src/gpio.rs index 14f2559e1..a67d4e73f 100644 --- a/embassy-stm32/src/gpio.rs +++ b/embassy-stm32/src/gpio.rs | |||
| @@ -130,9 +130,9 @@ impl<'d, T: Pin> Output<'d, T> { | |||
| 130 | let r = pin.block(); | 130 | let r = pin.block(); |
| 131 | let n = pin.pin() as usize; | 131 | let n = pin.pin() as usize; |
| 132 | r.pupdr().modify(|w| w.set_pupdr(n, vals::Pupdr::FLOATING)); | 132 | r.pupdr().modify(|w| w.set_pupdr(n, vals::Pupdr::FLOATING)); |
| 133 | r.moder().modify(|w| w.set_moder(n, vals::Moder::OUTPUT)); | ||
| 134 | r.otyper().modify(|w| w.set_ot(n, vals::Ot::PUSHPULL)); | 133 | r.otyper().modify(|w| w.set_ot(n, vals::Ot::PUSHPULL)); |
| 135 | pin.set_speed(speed); | 134 | pin.set_speed(speed); |
| 135 | r.moder().modify(|w| w.set_moder(n, vals::Moder::OUTPUT)); | ||
| 136 | }); | 136 | }); |
| 137 | 137 | ||
| 138 | Self { | 138 | Self { |
| @@ -208,9 +208,9 @@ impl<'d, T: Pin> OutputOpenDrain<'d, T> { | |||
| 208 | let r = pin.block(); | 208 | let r = pin.block(); |
| 209 | let n = pin.pin() as usize; | 209 | let n = pin.pin() as usize; |
| 210 | r.pupdr().modify(|w| w.set_pupdr(n, pull.into())); | 210 | r.pupdr().modify(|w| w.set_pupdr(n, pull.into())); |
| 211 | r.moder().modify(|w| w.set_moder(n, vals::Moder::OUTPUT)); | ||
| 212 | r.otyper().modify(|w| w.set_ot(n, vals::Ot::OPENDRAIN)); | 211 | r.otyper().modify(|w| w.set_ot(n, vals::Ot::OPENDRAIN)); |
| 213 | pin.set_speed(speed); | 212 | pin.set_speed(speed); |
| 213 | r.moder().modify(|w| w.set_moder(n, vals::Moder::OUTPUT)); | ||
| 214 | }); | 214 | }); |
| 215 | 215 | ||
| 216 | Self { | 216 | Self { |
| @@ -311,9 +311,6 @@ pub(crate) mod sealed { | |||
| 311 | let pin = self._pin() as usize; | 311 | let pin = self._pin() as usize; |
| 312 | let block = self.block(); | 312 | let block = self.block(); |
| 313 | block | 313 | block |
| 314 | .moder() | ||
| 315 | .modify(|w| w.set_moder(pin, vals::Moder::ALTERNATE)); | ||
| 316 | block | ||
| 317 | .afr(pin / 8) | 314 | .afr(pin / 8) |
| 318 | .modify(|w| w.set_afr(pin % 8, vals::Afr(af_num))); | 315 | .modify(|w| w.set_afr(pin % 8, vals::Afr(af_num))); |
| 319 | match af_type { | 316 | match af_type { |
| @@ -327,6 +324,10 @@ pub(crate) mod sealed { | |||
| 327 | block | 324 | block |
| 328 | .pupdr() | 325 | .pupdr() |
| 329 | .modify(|w| w.set_pupdr(pin, vals::Pupdr::FLOATING)); | 326 | .modify(|w| w.set_pupdr(pin, vals::Pupdr::FLOATING)); |
| 327 | |||
| 328 | block | ||
| 329 | .moder() | ||
| 330 | .modify(|w| w.set_moder(pin, vals::Moder::ALTERNATE)); | ||
| 330 | } | 331 | } |
| 331 | 332 | ||
| 332 | unsafe fn set_as_analog(&self) { | 333 | unsafe fn set_as_analog(&self) { |
