diff --git a/cpu/stm32f1/periph/gpio.c b/cpu/stm32f1/periph/gpio.c index 58e8c57044c2e366cbcbf0da30d4ff1bc4eb8f60..b4a916e905f7f0e42cce78401393f0884e86eda6 100644 --- a/cpu/stm32f1/periph/gpio.c +++ b/cpu/stm32f1/periph/gpio.c @@ -170,7 +170,7 @@ int gpio_read(gpio_t pin) GPIO_TypeDef *port = _port(pin); int pin_num = _pin_num(pin); - if (port->CR[pin_num >> 3] & (0x3 << (pin_num & 0x7))) { + if (port->CR[pin_num >> 3] & (0x3 << ((pin_num & 0x7) << 2))) { /* pin is output */ return (port->ODR & (1 << pin_num)); }