Browse Source

Merge branch 'master' of 192.168.1.3:zsdk_stm32_v1/stm32basic

transmit_disinfection
zhaohe 11 months ago
parent
commit
14556694da
  1. 9
      basic/zgpio.c
  2. 17
      basic/zgpio.h

9
basic/zgpio.c

@ -1,6 +1,7 @@
#include "zgpio.h"
#include "zlog.h"
#include "zdelay.h"
#include "zlog.h"
static bool gpio_enable_clock(GPIO_TypeDef *m_gpio) {
#ifdef GPIOA
@ -308,6 +309,12 @@ void zaf_gpio_write(zaf_gpio_t *gpio, bool level) {
}
void zaf_gpio_toggle(zaf_gpio_t *gpio) { HAL_GPIO_TogglePin(gpio->gpio, gpio->pinoff); }
void zaf_enable_clock(Pin_t pin) {
GPIO_TypeDef *gpio = _chip_get_gpio(pin);
gpio_enable_clock(gpio);
}
GPIO_TypeDef *chip_get_gpio(Pin_t pin) { return _chip_get_gpio(pin); }
int chip_get_pinoff(Pin_t pin) { return _chip_get_pinoff(pin); }
void EXTI0_IRQHandler() { HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0); }
void EXTI1_IRQHandler() { HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_1); }

17
basic/zgpio.h

@ -1,22 +1,21 @@
#pragma once
#include "zbase.h"
typedef enum {
kxs_gpio_nopull, //
kxs_gpio_pullup, //
kxs_gpio_pulldown, //
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 {
kxs_gpio_no_irq,
kxs_gpio_rising_irq,
kxs_gpio_falling_irq,
kxs_gpio_rising_and_falling_irq,
}zaf_gpio_irq_t;
} zaf_gpio_irq_t;
typedef struct {
Pin_t pin;
@ -27,10 +26,14 @@ typedef struct {
zaf_gpio_irq_t irqtype;
bool mirror;
bool inited;
}zaf_gpio_t;
} 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);
void zaf_gpio_write(zaf_gpio_t *gpio, bool level);
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);
Loading…
Cancel
Save