diff --git a/embassy-stm32/src/gpio.rs b/embassy-stm32/src/gpio.rs
index 1bc5553a2..bf8400ca9 100644
--- a/embassy-stm32/src/gpio.rs
+++ b/embassy-stm32/src/gpio.rs
@@ -131,6 +131,7 @@ impl<'d, T: Pin> Output<'d, T> {
             let n = pin.pin() as usize;
             r.pupdr().modify(|w| w.set_pupdr(n, vals::Pupdr::FLOATING));
             r.moder().modify(|w| w.set_moder(n, vals::Moder::OUTPUT));
+            r.otyper().modify(|w| w.set_ot(n, vals::Ot::PUSHPULL));
             pin.set_speed(speed);
         });