api_gpio.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  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. typedef struct {
  19. psfr_t sfr; //GPIO SFR ADDR
  20. u8 num;
  21. u8 type; //type = 1,高压IO,没有300R的强上下拉电阻。 type = 0, 普通IO, 有内部300R上下拉电阻。
  22. u16 pin;
  23. } gpio_t;
  24. #define bsp_gpio_cfg_init(x, y) gpio_cfg_init(x, y)
  25. void gpio_cfg_init(gpio_t *g, u8 io_num); //根据GPIO number初始化GPIO结构体
  26. void wakeup_disable(void);
  27. u8 get_adc_gpio_num(u8 adc_ch);
  28. void wakeup_gpio_config(u8 io_num, u8 edge, u8 pupd_sel); //任意GPIO的边沿唤醒配置, 参数edge: 0下降沿, 1上升沿, 参数pupd 0:不开内部上下拉, 1:开内部上拉, 2:开内部下拉
  29. void wakeup_wko_config(void); //配置WKO唤醒
  30. u32 wakeup_get_status(void); //获取唤醒状态,公共区函数
  31. u32 wakeup_gpio_get_status(u8 io_num); //获取某个GPIO的唤醒状态
  32. void adcch_io_pu10k_enable(u8 adc_ch);
  33. #endif // _BSP_GPIO_H