mirror of https://github.com/ARMmbed/mbed-os.git
[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 registerpull/1076/head
parent
dbb04307e3
commit
5b2d25f201
|
|
@ -55,10 +55,9 @@ void gpio_init(gpio_t *obj, PinName pin)
|
|||
GPIO_TypeDef *gpio = (GPIO_TypeDef *)gpio_add;
|
||||
|
||||
// Fill GPIO object structure for future use
|
||||
obj->mask = gpio_set(pin);
|
||||
obj->reg_in = &gpio->IDR;
|
||||
obj->reg_set = &gpio->BSRRL;
|
||||
obj->reg_clr = &gpio->BSRRH;
|
||||
obj->mask = gpio_set(pin);
|
||||
obj->reg_in = &gpio->IDR;
|
||||
obj->reg_set_clr = &gpio->BSRR;
|
||||
}
|
||||
|
||||
void gpio_mode(gpio_t *obj, PinMode mode)
|
||||
|
|
|
|||
|
|
@ -44,17 +44,16 @@ typedef struct {
|
|||
PinName pin;
|
||||
uint32_t mask;
|
||||
__IO uint32_t *reg_in;
|
||||
__IO uint16_t *reg_set;
|
||||
__IO uint16_t *reg_clr;
|
||||
__IO uint32_t *reg_set_clr;
|
||||
} gpio_t;
|
||||
|
||||
static inline void gpio_write(gpio_t *obj, int value)
|
||||
{
|
||||
MBED_ASSERT(obj->pin != (PinName)NC);
|
||||
if (value) {
|
||||
*obj->reg_set = obj->mask;
|
||||
*obj->reg_set_clr = obj->mask;
|
||||
} else {
|
||||
*obj->reg_clr = obj->mask;
|
||||
*obj->reg_set_clr = obj->mask << 16;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue