set moder::ALTERNATE last when configuring pins to AF modes.
- as per STM32F4xx_hal's impl
@@ -310,9 +310,6 @@ pub(crate) mod sealed {
unsafe fn set_as_af(&self, af_num: u8, af_type: OutputType) {
let pin = self._pin() as usize;
let block = self.block();
- block
- .moder()
- .modify(|w| w.set_moder(pin, vals::Moder::ALTERNATE));
block
.afr(pin / 8)
.modify(|w| w.set_afr(pin % 8, vals::Afr(af_num)));
@@ -327,6 +324,10 @@ pub(crate) mod sealed {
block
.pupdr()
.modify(|w| w.set_pupdr(pin, vals::Pupdr::FLOATING));
+
+ block
+ .moder()
+ .modify(|w| w.set_moder(pin, vals::Moder::ALTERNATE));
}
unsafe fn set_as_analog(&self) {
