From 46cc635d31b6331f85b9e8d5d53ad14a00274fe5 Mon Sep 17 00:00:00 2001 From: Steins7 Date: Sun, 26 Jan 2020 16:25:17 +0100 Subject: [PATCH] Fixed GPIO config not working for pins 4 to 7 * modified mask form 0xFFFF to 0xFFFFFFFF --- src/drivers/io.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/drivers/io.c b/src/drivers/io.c index fb9de25..edb7aac 100644 --- a/src/drivers/io.c +++ b/src/drivers/io.c @@ -116,14 +116,14 @@ int io_configure(GPIO_TypeDef *gpio, uint16_t pin, uint8_t pin_cfg, OnIO cb) { uint64_t crx = pin_mask * 0x4; //reset value is 0x4 uint16_t odr = pin; gpio->CRH &= ~(crx >> 32); - gpio->CRL &= ~(crx & 0xFFFF); + gpio->CRL &= ~(crx & 0xFFFFFFFF); gpio->BSRR |= odr << 16; // set up the new configuration crx = pin_mask * (pin_cfg & 0xF); odr = pin_cfg & 0x10; gpio->CRH |= crx >> 32; - gpio->CRL |= crx & 0xFFFF; + gpio->CRL |= crx & 0xFFFFFFFF; gpio->BSRR |= odr; //if (!cb) return -1; //no callback attached