Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 

46 rader
1.4 KiB

  1. #ifndef _GPIO_H
  2. #define _GPIO_H
  3. #include "stm32f4xx.h"
  4. /* GPIO引脚 */
  5. #define gpio_pin_0 (1<<0)
  6. #define gpio_pin_1 (1<<1)
  7. #define gpio_pin_2 (1<<2)
  8. #define gpio_pin_3 (1<<3)
  9. #define gpio_pin_4 (1<<4)
  10. #define gpio_pin_5 (1<<5)
  11. #define gpio_pin_6 (1<<6)
  12. #define gpio_pin_7 (1<<7)
  13. #define gpio_pin_8 (1<<8)
  14. #define gpio_pin_9 (1<<9)
  15. #define gpio_pin_10 (1<<10)
  16. #define gpio_pin_11 (1<<11)
  17. #define gpio_pin_12 (1<<12)
  18. #define gpio_pin_13 (1<<13)
  19. #define gpio_pin_14 (1<<14)
  20. #define gpio_pin_15 (1<<15)
  21. /* 中断注册函数指针 */
  22. typedef void (*CallBack)(void);
  23. /* GPIO外设 */
  24. typedef struct GPIO {
  25. char *name;
  26. uint16_t gpio_pin;
  27. char *gpio_mode;
  28. int (*gpio_init)(struct GPIO *pDev, uint16_t gpio_pin, char *gpio_mode, char *gpio_pupd);
  29. void (*gpio_deinit)(struct GPIO *pDev);
  30. void (*gpio_set_output)(struct GPIO *pDev, uint16_t gpio_pin, uint8_t voltage);
  31. uint16_t(*gpio_read_output)(struct GPIO *pDev);
  32. uint16_t(*gpio_read_input)(struct GPIO *pDev);
  33. void (*gpio_open_irq)(struct GPIO *pDev, uint8_t GPIO_PinSource, uint8_t EXTI_Trigger, uint8_t Priority, CallBack irq_handle);
  34. void (*gpio_close_irq)(struct GPIO *pDev, uint8_t GPIO_PinSource);
  35. void *gpio_priv_data;
  36. } gpio_obj_t;
  37. /* 获取GPIO外设句柄 */
  38. gpio_obj_t *get_gpio_obj(char *name);
  39. #endif