|
@ -1,36 +1,39 @@ |
|
|
#pragma once |
|
|
#pragma once |
|
|
#include "zbase.h" |
|
|
#include "zbase.h" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef enum { |
|
|
typedef enum { |
|
|
kxs_gpio_nopull, // |
|
|
kxs_gpio_nopull, // |
|
|
kxs_gpio_pullup, // |
|
|
kxs_gpio_pullup, // |
|
|
kxs_gpio_pulldown, // |
|
|
kxs_gpio_pulldown, // |
|
|
kxs_gpio_od, // |
|
|
kxs_gpio_od, // |
|
|
}zaf_gpio_mode_t; |
|
|
|
|
|
|
|
|
} zaf_gpio_mode_t; |
|
|
|
|
|
|
|
|
typedef enum { kxs_gpio_ain, kxs_gpio_input, kxs_gpio_output }zaf_gpio_type_t; |
|
|
|
|
|
|
|
|
typedef enum { kxs_gpio_ain, kxs_gpio_input, kxs_gpio_output } zaf_gpio_type_t; |
|
|
|
|
|
|
|
|
typedef enum { |
|
|
typedef enum { |
|
|
kxs_gpio_no_irq, |
|
|
kxs_gpio_no_irq, |
|
|
kxs_gpio_rising_irq, |
|
|
kxs_gpio_rising_irq, |
|
|
kxs_gpio_falling_irq, |
|
|
kxs_gpio_falling_irq, |
|
|
kxs_gpio_rising_and_falling_irq, |
|
|
kxs_gpio_rising_and_falling_irq, |
|
|
}zaf_gpio_irq_t; |
|
|
|
|
|
|
|
|
} zaf_gpio_irq_t; |
|
|
|
|
|
|
|
|
typedef struct { |
|
|
typedef struct { |
|
|
Pin_t pin; |
|
|
|
|
|
GPIO_TypeDef *gpio; |
|
|
|
|
|
uint16_t pinoff; |
|
|
|
|
|
zaf_gpio_mode_t mode; |
|
|
|
|
|
zaf_gpio_type_t gpiotype; |
|
|
|
|
|
zaf_gpio_irq_t irqtype; |
|
|
|
|
|
bool mirror; |
|
|
|
|
|
bool inited; |
|
|
|
|
|
}zaf_gpio_t; |
|
|
|
|
|
|
|
|
Pin_t pin; |
|
|
|
|
|
GPIO_TypeDef *gpio; |
|
|
|
|
|
uint16_t pinoff; |
|
|
|
|
|
zaf_gpio_mode_t mode; |
|
|
|
|
|
zaf_gpio_type_t gpiotype; |
|
|
|
|
|
zaf_gpio_irq_t irqtype; |
|
|
|
|
|
bool mirror; |
|
|
|
|
|
bool inited; |
|
|
|
|
|
} zaf_gpio_t; |
|
|
|
|
|
|
|
|
void zaf_gpio_init_as_input(zaf_gpio_t *gpio, Pin_t pin,zaf_gpio_mode_t mode,zaf_gpio_irq_t irqtype, bool mirror); |
|
|
|
|
|
void zaf_gpio_init_as_output(zaf_gpio_t *gpio, Pin_t pin,zaf_gpio_mode_t mode, bool mirror, bool initLevel); |
|
|
|
|
|
|
|
|
void zaf_gpio_init_as_input(zaf_gpio_t *gpio, Pin_t pin, zaf_gpio_mode_t mode, zaf_gpio_irq_t irqtype, bool mirror); |
|
|
|
|
|
void zaf_gpio_init_as_output(zaf_gpio_t *gpio, Pin_t pin, zaf_gpio_mode_t mode, bool mirror, bool initLevel); |
|
|
bool zaf_gpio_read(zaf_gpio_t *gpio); |
|
|
bool zaf_gpio_read(zaf_gpio_t *gpio); |
|
|
void zaf_gpio_write(zaf_gpio_t *gpio, bool level); |
|
|
void zaf_gpio_write(zaf_gpio_t *gpio, bool level); |
|
|
void zaf_gpio_toggle(zaf_gpio_t *gpio); |
|
|
void zaf_gpio_toggle(zaf_gpio_t *gpio); |
|
|
|
|
|
void zaf_enable_clock(Pin_t pin); |
|
|
|
|
|
|
|
|
|
|
|
GPIO_TypeDef *chip_get_gpio(Pin_t pin); |
|
|
|
|
|
int chip_get_pinoff(Pin_t pin); |