diff --git a/lib/stm32/f2/gpio.c b/lib/stm32/f2/gpio.c index 9b730e1d..835eb91c 100644 --- a/lib/stm32/f2/gpio.c +++ b/lib/stm32/f2/gpio.c @@ -79,14 +79,14 @@ void gpio_set_af(u32 gpioport, u8 alt_func_num, u16 gpios) for (i = 0; i < 8; i++) { if (!((1 << i) & gpios)) continue; - afrl &= GPIO_AFR_MASK(i); + afrl &= ~GPIO_AFR_MASK(i); afrl |= GPIO_AFR(i, alt_func_num); } for (i = 8; i < 16; i++) { if (!((1 << i) & gpios)) continue; - afrl &= GPIO_AFR_MASK(i - 8); + afrl &= ~GPIO_AFR_MASK(i - 8); afrh |= GPIO_AFR(i - 8, alt_func_num); } diff --git a/lib/stm32/f4/gpio.c b/lib/stm32/f4/gpio.c index ecc66eee..e8b2dacd 100644 --- a/lib/stm32/f4/gpio.c +++ b/lib/stm32/f4/gpio.c @@ -79,14 +79,14 @@ void gpio_set_af(u32 gpioport, u8 alt_func_num, u16 gpios) for (i = 0; i < 8; i++) { if (!((1 << i) & gpios)) continue; - afrl &= GPIO_AFR_MASK(i); + afrl &= ~GPIO_AFR_MASK(i); afrl |= GPIO_AFR(i, alt_func_num); } for (i = 8; i < 16; i++) { if (!((1 << i) & gpios)) continue; - afrl &= GPIO_AFR_MASK(i - 8); + afrl &= ~GPIO_AFR_MASK(i - 8); afrh |= GPIO_AFR(i - 8, alt_func_num); }