luat_soc_sdk_2024 V1.0
luat_gpio.h 文件参考
#include "luat_base.h"
#include "luat_gpio_legacy.h"

浏览该文件的源代码.

结构体

struct  luat_gpio_cfg
 GPIO控制参数 更多...
 

宏定义

#define LUAT_GPIO_PIN_MAX   (128)
 
#define LUAT_GPIO_LOW   (Luat_GPIO_LOW)
 GPIO配置为低电平
 
#define LUAT_GPIO_HIGH   (Luat_GPIO_HIGH)
 GPIO配置为高电平
 
#define LUAT_GPIO_OUTPUT   (Luat_GPIO_OUTPUT)
 GPIO配置为输出模式
 
#define LUAT_GPIO_INPUT   (Luat_GPIO_INPUT)
 GPIO配置为输入模式
 
#define LUAT_GPIO_IRQ   (Luat_GPIO_IRQ)
 GPIO配置为中断模式
 
#define LUAT_GPIO_DEFAULT   (Luat_GPIO_DEFAULT)
 GPIO配置为默认模式,EC618平台,上下拉只对输出模式有效,输入模式只有默认上下拉或者取消上下拉,普通的GPIO配置为LUAT_GPIO_DEFAULT,表示完全关闭上下拉;AGPIO软件上不支持配置上下拉,即使配置了也无效,一直是硬件开机或者复位时的默认状态
 
#define LUAT_GPIO_PULLUP   (Luat_GPIO_PULLUP)
 GPIO配置为上拉模式
 
#define LUAT_GPIO_PULLDOWN   (Luat_GPIO_PULLDOWN)
 GPIO配置为下拉模式
 
#define LUAT_GPIO_RISING_IRQ   (Luat_GPIO_RISING)
 上升沿中断
 
#define LUAT_GPIO_FALLING_IRQ   (Luat_GPIO_FALLING)
 下降沿中断
 
#define LUAT_GPIO_BOTH_IRQ   (Luat_GPIO_BOTH)
 上升沿 下降沿都中断
 
#define LUAT_GPIO_HIGH_IRQ   (Luat_GPIO_HIGH_IRQ)
 GPIO配置为高电平中断模式
 
#define LUAT_GPIO_LOW_IRQ   (Luat_GPIO_LOW_IRQ)
 GPIO配置为低电平模式
 
#define LUAT_GPIO_NO_IRQ   (0xff)
 GPIO没有中断模式
 
#define LUAT_GPIO_MAX_ID   (Luat_GPIO_MAX_ID)
 最大GPIO序号
 
#define LUAT_GPIO_NONE   (0xff)
 

类型定义

typedef struct luat_gpio_cfg luat_gpio_cfg_t
 GPIO控制参数
 

枚举

enum  LUAT_GPIO_CTRL_CMD_E { LUAT_GPIO_CMD_SET_PULL_MODE , LUAT_GPIO_CMD_SET_IRQ_MODE }
 GPIO上下拉\中断设置参数 更多...
 

函数

void luat_gpio_set_default_cfg (luat_gpio_cfg_t *gpio)
 GPIO设置默认参数
 
int luat_gpio_open (luat_gpio_cfg_t *gpio)
 打开GPIO
 
int luat_gpio_set (int pin, int level)
 GPIO输出电平
 
int luat_gpio_get (int pin)
 读取GPIO输入电平
 
void luat_gpio_close (int pin)
 关闭GPIO
 
int luat_gpio_set_irq_cb (int pin, luat_gpio_irq_cb cb, void *args)
 设置GPIO中断回调函数
 
void luat_gpio_pulse (int pin, uint8_t *level, uint16_t len, uint16_t delay_ns)
 GPIO模拟单线输出模式
 
int luat_gpio_ctrl (int pin, LUAT_GPIO_CTRL_CMD_E cmd, int param)
 GPIO上下拉\中断单独设置函数
 
void luat_gpio_iomux (int pin, int new_pad, uint8_t alt)
 
int luat_gpio_driver_ws2812b (int pin, uint8_t *data, uint32_t len, uint32_t frame_cnt, uint8_t bit0h, uint8_t bit0l, uint8_t bit1h, uint8_t bit1l)
 gpio方式输出bit0和bit1给WS2812B,不输出reset,由于严格的时序要求,会关闭中断来保证时序,因此驱动大量LED灯时会对其他驱动,甚至整个系统有影响。建议用多个GPIO分组驱动大量LED灯,1个GPIO最好不要超过32个灯
 
void luat_gpio_mode (int pin, int mode, int pull, int initOutput)
 

宏定义说明

◆ LUAT_GPIO_PIN_MAX

#define LUAT_GPIO_PIN_MAX   (128)

在文件 luat_gpio.h11 行定义.

函数说明

◆ luat_gpio_mode()

void luat_gpio_mode ( int pin,
int mode,
int pull,
int initOutput )