aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Salzedo <[email protected]>2021-09-27 15:27:43 -0700
committerJoshua Salzedo <[email protected]>2021-09-27 15:27:43 -0700
commit67e2f9159cac61a6551dc68363014b5d2ee664ea (patch)
tree4dc5cffdf46598c103d87176a66340bb122c8f09
parent6aa675994d21be7e6d22404d9a3638e7c3127a14 (diff)
set moder::ALTERNATE last when configuring pins to AF modes.
- as per STM32F4xx_hal's impl
-rw-r--r--embassy-stm32/src/gpio.rs7
1 files changed, 4 insertions, 3 deletions
diff --git a/embassy-stm32/src/gpio.rs b/embassy-stm32/src/gpio.rs
index 14f2559e1..81d427a74 100644
--- a/embassy-stm32/src/gpio.rs
+++ b/embassy-stm32/src/gpio.rs
@@ -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) {