Skip to content

Commit 5b2d25f

Browse files
committed
[STM32F4xx] update of STM32CubeF4 to version 1.5 - part 3
Adaption of gpio_api to new hal version: register to set/clear a pin is now a single 32bit register
1 parent dbb0430 commit 5b2d25f

File tree

2 files changed

+6
-8
lines changed

2 files changed

+6
-8
lines changed

libraries/mbed/targets/hal/TARGET_STM/TARGET_STM32F4/gpio_api.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,9 @@ void gpio_init(gpio_t *obj, PinName pin)
5555
GPIO_TypeDef *gpio = (GPIO_TypeDef *)gpio_add;
5656

5757
// Fill GPIO object structure for future use
58-
obj->mask = gpio_set(pin);
59-
obj->reg_in = &gpio->IDR;
60-
obj->reg_set = &gpio->BSRRL;
61-
obj->reg_clr = &gpio->BSRRH;
58+
obj->mask = gpio_set(pin);
59+
obj->reg_in = &gpio->IDR;
60+
obj->reg_set_clr = &gpio->BSRR;
6261
}
6362

6463
void gpio_mode(gpio_t *obj, PinMode mode)

libraries/mbed/targets/hal/TARGET_STM/TARGET_STM32F4/gpio_object.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,17 +44,16 @@ typedef struct {
4444
PinName pin;
4545
uint32_t mask;
4646
__IO uint32_t *reg_in;
47-
__IO uint16_t *reg_set;
48-
__IO uint16_t *reg_clr;
47+
__IO uint32_t *reg_set_clr;
4948
} gpio_t;
5049

5150
static inline void gpio_write(gpio_t *obj, int value)
5251
{
5352
MBED_ASSERT(obj->pin != (PinName)NC);
5453
if (value) {
55-
*obj->reg_set = obj->mask;
54+
*obj->reg_set_clr = obj->mask;
5655
} else {
57-
*obj->reg_clr = obj->mask;
56+
*obj->reg_set_clr = obj->mask << 16;
5857
}
5958
}
6059

0 commit comments

Comments
 (0)