gpio.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #ifndef __GPIO_H__
  2. #define __GPIO_H__
  3. #include "./../../stm32f429xx.h"
  4. //#include <stdint.h>
  5. typedef enum {
  6. SET_GPIO_INPUT = 0,
  7. SET_GPIO_PUSH_PULL_OUTPUT,
  8. SET_GPIO_OPEN_DRAIN_OUTPUT,
  9. SET_GPIO_PULL_UP,
  10. SET_GPIO_PULL_DOWN,
  11. SET_GPIO_NO_PULL,
  12. SET_GPIO_SPEED,
  13. SET_GPIO_VALUE,
  14. GET_GPIO_VALUE
  15. }GpioAction;
  16. #define GPIO_PIN_0 ((uint16_t)0x0001) /* Pin 0 selected */
  17. #define GPIO_PIN_1 ((uint16_t)0x0002) /* Pin 1 selected */
  18. #define GPIO_PIN_2 ((uint16_t)0x0004) /* Pin 2 selected */
  19. #define GPIO_PIN_3 ((uint16_t)0x0008) /* Pin 3 selected */
  20. #define GPIO_PIN_4 ((uint16_t)0x0010) /* Pin 4 selected */
  21. #define GPIO_PIN_5 ((uint16_t)0x0020) /* Pin 5 selected */
  22. #define GPIO_PIN_6 ((uint16_t)0x0040) /* Pin 6 selected */
  23. #define GPIO_PIN_7 ((uint16_t)0x0080) /* Pin 7 selected */
  24. #define GPIO_PIN_8 ((uint16_t)0x0100) /* Pin 8 selected */
  25. #define GPIO_PIN_9 ((uint16_t)0x0200) /* Pin 9 selected */
  26. #define GPIO_PIN_10 ((uint16_t)0x0400) /* Pin 10 selected */
  27. #define GPIO_PIN_11 ((uint16_t)0x0800) /* Pin 11 selected */
  28. #define GPIO_PIN_12 ((uint16_t)0x1000) /* Pin 12 selected */
  29. #define GPIO_PIN_13 ((uint16_t)0x2000) /* Pin 13 selected */
  30. #define GPIO_PIN_14 ((uint16_t)0x4000) /* Pin 14 selected */
  31. #define GPIO_PIN_15 ((uint16_t)0x8000) /* Pin 15 selected */
  32. #define GPIO_PIN_All ((uint16_t)0xFFFF) /* All pins selected */
  33. #define GPIO_LOW_SPEED ((uint8_t)0x00)
  34. #define GPIO_MEDIUM_SPEED ((uint8_t)0x01)
  35. #define GPIO_FAST_SPEED ((uint8_t)0x02)
  36. #define GPIO_HIGH_SPEED ((uint8_t)0x03)
  37. typedef struct {
  38. GPIO_TypeDef *port;
  39. uint16_t pin;
  40. uint8_t data;
  41. }gpio_data_t;
  42. #endif /* __GPIO_H__ */