[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
pull/1076/head
ohagendorf 2015-04-26 01:49:58 +02:00
parent dbb04307e3
commit 5b2d25f201
2 changed files with 6 additions and 8 deletions

View File

@ -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)

View File

@ -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;
}
}