luat_soc_sdk_2024 V1.0
|
结构体 | |
struct | luat_gpio_cfg |
GPIO控制参数 更多... | |
宏定义 | |
#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个灯 | |
#define LUAT_GPIO_BOTH_IRQ (Luat_GPIO_BOTH) |
上升沿 下降沿都中断
在文件 luat_gpio.h 第 32 行定义.
#define LUAT_GPIO_DEFAULT (Luat_GPIO_DEFAULT) |
GPIO配置为默认模式,EC618平台,上下拉只对输出模式有效,输入模式只有默认上下拉或者取消上下拉,普通的GPIO配置为LUAT_GPIO_DEFAULT,表示完全关闭上下拉;AGPIO软件上不支持配置上下拉,即使配置了也无效,一直是硬件开机或者复位时的默认状态
在文件 luat_gpio.h 第 26 行定义.
#define LUAT_GPIO_FALLING_IRQ (Luat_GPIO_FALLING) |
下降沿中断
在文件 luat_gpio.h 第 31 行定义.
#define LUAT_GPIO_HIGH (Luat_GPIO_HIGH) |
GPIO配置为高电平
在文件 luat_gpio.h 第 20 行定义.
#define LUAT_GPIO_HIGH_IRQ (Luat_GPIO_HIGH_IRQ) |
GPIO配置为高电平中断模式
在文件 luat_gpio.h 第 33 行定义.
#define LUAT_GPIO_INPUT (Luat_GPIO_INPUT) |
GPIO配置为输入模式
在文件 luat_gpio.h 第 23 行定义.
#define LUAT_GPIO_IRQ (Luat_GPIO_IRQ) |
GPIO配置为中断模式
在文件 luat_gpio.h 第 24 行定义.
#define LUAT_GPIO_LOW (Luat_GPIO_LOW) |
GPIO配置为低电平
在文件 luat_gpio.h 第 19 行定义.
#define LUAT_GPIO_LOW_IRQ (Luat_GPIO_LOW_IRQ) |
GPIO配置为低电平模式
在文件 luat_gpio.h 第 34 行定义.
#define LUAT_GPIO_MAX_ID (Luat_GPIO_MAX_ID) |
最大GPIO序号
在文件 luat_gpio.h 第 37 行定义.
#define LUAT_GPIO_NO_IRQ (0xff) |
GPIO没有中断模式
在文件 luat_gpio.h 第 35 行定义.
#define LUAT_GPIO_NONE (0xff) |
在文件 luat_gpio.h 第 40 行定义.
#define LUAT_GPIO_OUTPUT (Luat_GPIO_OUTPUT) |
GPIO配置为输出模式
在文件 luat_gpio.h 第 22 行定义.
#define LUAT_GPIO_PULLDOWN (Luat_GPIO_PULLDOWN) |
GPIO配置为下拉模式
在文件 luat_gpio.h 第 28 行定义.
#define LUAT_GPIO_PULLUP (Luat_GPIO_PULLUP) |
GPIO配置为上拉模式
在文件 luat_gpio.h 第 27 行定义.
#define LUAT_GPIO_RISING_IRQ (Luat_GPIO_RISING) |
上升沿中断
在文件 luat_gpio.h 第 30 行定义.
typedef struct luat_gpio_cfg luat_gpio_cfg_t |
GPIO控制参数
enum LUAT_GPIO_CTRL_CMD_E |
GPIO上下拉\中断设置参数
枚举值 | |
---|---|
LUAT_GPIO_CMD_SET_PULL_MODE | 上下拉模式 |
LUAT_GPIO_CMD_SET_IRQ_MODE | 中断模式 |
在文件 luat_gpio.h 第 61 行定义.
void luat_gpio_close | ( | int | pin | ) |
关闭GPIO
Pin | Pin序号 |
int luat_gpio_ctrl | ( | int | pin, |
LUAT_GPIO_CTRL_CMD_E | cmd, | ||
int | param ) |
GPIO上下拉\中断单独设置函数
pin | Pin序号 |
LUAT_GPIO_CTRL_CMD_E | 设置命令 LUAT_GPIO_CMD_SET_PULL_MODE 设置上下拉命令 LUAT_GPIO_CMD_SET_IRQ_MODE |
param | 设置参数 参数取自上下拉、以及中断的宏定义 |
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个灯
pin | GPIO号 |
data | 输出的byte数据,驱动不对数据做任何RGB顺序调整,请自行调整 |
len | 输出的byte数量,必须是3的倍数 |
frame_cnt | 在一次关闭全局中断到开启全局中断中间发送的帧数,1帧3个byte。分段发送是为了能让其他中断有响应的时间,但是造成提前发送reset而导致剩下的灯不亮。写0则一次性全部发送 |
bit0h | bit0的高电平额外延迟,默认写10,如果高电平时间不足酌情增加 |
bit0l | bit0的低电平额外延迟,默认写0 |
bit1h | bit1的高电平额外延迟,默认写10,如果高电平时间不足酌情增加 |
bit1l | bit1的低电平额外延迟,默认写0 |
int luat_gpio_get | ( | int | pin | ) |
读取GPIO输入电平
Pin | Pin序号 |
void luat_gpio_iomux | ( | int | pin, |
int | new_pad, | ||
uint8_t | alt ) |
int luat_gpio_open | ( | luat_gpio_cfg_t * | gpio | ) |
打开GPIO
luat_gpio_cfg_t |
void luat_gpio_pulse | ( | int | pin, |
uint8_t * | level, | ||
uint16_t | len, | ||
uint16_t | delay_ns ) |
GPIO模拟单线输出模式
Pin | Pin序号 |
Data | 输出电平序列 |
BitLen | 输出电平序列中一共有几个bit |
Delay | 每个bit之间的delay |
int luat_gpio_set | ( | int | pin, |
int | level ) |
GPIO输出电平
Pin | Pin序号 |
Level | 1高电平,0低电平 |
void luat_gpio_set_default_cfg | ( | luat_gpio_cfg_t * | gpio | ) |
GPIO设置默认参数
luat_gpio_cfg_t |
int luat_gpio_set_irq_cb | ( | int | pin, |
luat_gpio_irq_cb | cb, | ||
void * | args ) |
设置GPIO中断回调函数
Pin | Pin序号 |
cb | 中断处理函数 |
args | 中断函数参数 |