bsp_gpio.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef _BSP_GPIO_H
  2. #define _BSP_GPIO_H
  3. enum {
  4. GPIOxSET = 0,
  5. GPIOxCLR,
  6. GPIOx,
  7. GPIOxDIR,
  8. GPIOxDE,
  9. GPIOxFEN,
  10. GPIOxDRV,
  11. GPIOxPU,
  12. GPIOxPD,
  13. GPIOxPU200K,
  14. GPIOxPD200K,
  15. GPIOxPU300,
  16. GPIOxPD300,
  17. };
  18. enum {
  19. EDGE_FALLING = 0,
  20. EDGE_RISING,
  21. };
  22. enum {
  23. WKG_NONE = 0,
  24. WKG_PU,
  25. WKG_PD,
  26. };
  27. typedef struct {
  28. psfr_t sfr; //GPIO SFR ADDR
  29. u8 num;
  30. u8 type;
  31. } gpio_t;
  32. extern const u8 adc_gpio_tbl[16];
  33. extern const u8 configure_gpio_tbl[16];
  34. void bsp_gpio_cfg_init(gpio_t *g, u8 io_num);
  35. void wakeup_gpio_config(u8 io_num, u8 edge, u8 pupd_cfg); //任意GPIO的边沿唤醒配置。参数edge: 0下降沿, 1上升沿, 参数pupd 0:不开内部上拉, 1:开内部上拉, 2:开内部下拉
  36. u8 get_adc_gpio_num(u8 adc_ch);
  37. void adcch_io_pu10k_enable(u8 adc_ch);
  38. uint gpiox_get_status(uint io_num);
  39. void bsp_gpiode_reinit_save(void);
  40. void bsp_gpiode_recover(void);
  41. int gpiox_get_voltage_level(uint adc_num);
  42. void gpiox_crbfpu2_cfg(u32 io_map, u32 pd_flag, u32 set_flag);
  43. #endif // _BSP_GPIO_H