|
- #ifndef _GPIO_H
- #define _GPIO_H
-
- #include "stm32f4xx.h"
-
- /* GPIO引脚 */
- #define gpio_pin_0 (1<<0)
- #define gpio_pin_1 (1<<1)
- #define gpio_pin_2 (1<<2)
- #define gpio_pin_3 (1<<3)
- #define gpio_pin_4 (1<<4)
- #define gpio_pin_5 (1<<5)
- #define gpio_pin_6 (1<<6)
- #define gpio_pin_7 (1<<7)
- #define gpio_pin_8 (1<<8)
- #define gpio_pin_9 (1<<9)
- #define gpio_pin_10 (1<<10)
- #define gpio_pin_11 (1<<11)
- #define gpio_pin_12 (1<<12)
- #define gpio_pin_13 (1<<13)
- #define gpio_pin_14 (1<<14)
- #define gpio_pin_15 (1<<15)
-
- /* 中断注册函数指针 */
- typedef void (*CallBack)(void);
-
- /* GPIO外设 */
- typedef struct GPIO {
- char *name;
- uint16_t gpio_pin;
- char *gpio_mode;
- int (*gpio_init)(struct GPIO *pDev, uint16_t gpio_pin, char *gpio_mode, char *gpio_pupd);
- void (*gpio_deinit)(struct GPIO *pDev);
- void (*gpio_set_output)(struct GPIO *pDev, uint16_t gpio_pin, uint8_t voltage);
- uint16_t(*gpio_read_output)(struct GPIO *pDev);
- uint16_t(*gpio_read_input)(struct GPIO *pDev);
- void (*gpio_open_irq)(struct GPIO *pDev, uint8_t GPIO_PinSource, uint8_t EXTI_Trigger, uint8_t Priority, CallBack irq_handle);
- void (*gpio_close_irq)(struct GPIO *pDev, uint8_t GPIO_PinSource);
- void *gpio_priv_data;
- } gpio_obj_t;
-
- /* 获取GPIO外设句柄 */
- gpio_obj_t *get_gpio_obj(char *name);
-
- #endif
|