XFusion API v1.3.0
载入中...
搜索中...
未找到
gpio

通用输入输出。 更多...

gpio 的协作图:

结构体

struct  _xf_hal_gpio_irq_t
 中断回调结构体。 更多...
 
struct  _xf_hal_gpio_config_t
 gpio 配置结构体。用于对接 gpio 设置的参数。 更多...
 

宏定义

#define XF_HAL_GPIO_NUM_NONE   ((xf_gpio_num_t)-1)
 无效 gpio 序号定义。
 

类型定义

typedef uint32_t xf_gpio_num_t
 gpio 序号。
 
typedef void(* xf_hal_gpio_irq_cb_t) (xf_gpio_num_t gpio_num, bool level, void *user_data)
 gpio 中断回调函数原型。
 
typedef enum _xf_hal_gpio_intr_type_t xf_hal_gpio_intr_type_t
 gpio 的中断类型。
 
typedef enum _xf_hal_gpio_dir_t xf_hal_gpio_dir_t
 gpio 的方向。
 
typedef enum _xf_hal_gpio_pull_t xf_hal_gpio_pull_t
 gpio 的上下拉。
 
typedef struct _xf_hal_gpio_irq_t xf_hal_gpio_callback_t
 中断回调结构体。
 
typedef enum _xf_hal_gpio_cmd_t xf_hal_gpio_cmd_t
 gpio 命令枚举。用于对接 gpio 设置的命令。
 
typedef struct _xf_hal_gpio_config_t xf_hal_gpio_config_t
 gpio 配置结构体。用于对接 gpio 设置的参数。
 

枚举

enum  _xf_hal_gpio_intr_type_t {
  _XF_HAL_GPIO_INTR_BASE = 0 , XF_HAL_GPIO_INTR_TYPE_DISABLE = _XF_HAL_GPIO_INTR_BASE , XF_HAL_GPIO_INTR_TYPE_RISING , XF_HAL_GPIO_INTR_TYPE_FALLING ,
  XF_HAL_GPIO_INTR_TYPE_ANY , _XF_HAL_GPIO_INTR_TYPE_MAX
}
 gpio 的中断类型。 更多...
 
enum  _xf_hal_gpio_dir_t {
  _XF_HAL_GPIO_DIR_BASE = 0 , XF_HAL_GPIO_DIR_IN = _XF_HAL_GPIO_DIR_BASE , XF_HAL_GPIO_DIR_OUT , XF_HAL_GPIO_DIR_OUT_OD ,
  _XF_HAL_GPIO_DIR_MAX
}
 gpio 的方向。 更多...
 
enum  _xf_hal_gpio_pull_t {
  _XF_HAL_GPIO_PULL_BASE = 0 , XF_HAL_GPIO_PULL_NONE = _XF_HAL_GPIO_PULL_BASE , XF_HAL_GPIO_PULL_UP , XF_HAL_GPIO_PULL_DOWN ,
  _XF_HAL_GPIO_PULL_MAX
}
 gpio 的上下拉。 更多...
 
enum  _xf_hal_gpio_cmd_t {
  XF_HAL_GPIO_CMD_DEFAULT = 0x0 , XF_HAL_GPIO_CMD_DIRECTION = 0x1 << 0 , XF_HAL_GPIO_CMD_PULL = 0x1 << 1 , XF_HAL_GPIO_CMD_SPEED = 0x1 << 2 ,
  XF_HAL_GPIO_CMD_INTR_ENABLE = 0x1 << 3 , XF_HAL_GPIO_CMD_INTR_TYPE = 0x1 << 4 , XF_HAL_GPIO_CMD_INTR_CB = 0x1 << 5 , XF_HAL_GPIO_CMD_INTR_ISR = 0x1 << 6 ,
  XF_HAL_GPIO_CMD_ALL = 0x7FFFFFFF
}
 gpio 命令枚举。用于对接 gpio 设置的命令。 更多...
 

函数

xf_err_t xf_hal_gpio_init (xf_gpio_num_t gpio_num, xf_hal_gpio_dir_t direction)
 gpio 初始化函数。使用 gpio 之前必须要进行初始化。
 
xf_err_t xf_hal_gpio_deinit (xf_gpio_num_t gpio_num)
 gpio 反初始化。恢复到未初始化状态且回收相关资源。
 
xf_err_t xf_hal_gpio_set_direction (xf_gpio_num_t gpio_num, xf_hal_gpio_dir_t direction)
 gpio 设置方向。
 
xf_err_t xf_hal_gpio_set_pull (xf_gpio_num_t gpio_num, xf_hal_gpio_pull_t pull)
 gpio 设置上下拉模式。
 
xf_err_t xf_hal_gpio_set_speed (xf_gpio_num_t gpio_num, uint32_t speed)
 gpio 速度设置。
 
xf_err_t xf_hal_gpio_set_intr_cb (xf_gpio_num_t gpio_num, xf_hal_gpio_irq_cb_t callback, void *user_data)
 gpio 设置中断回调。
 
xf_err_t xf_hal_gpio_set_intr_isr (xf_gpio_num_t gpio_num, xf_hal_gpio_irq_cb_t callback, void *user_data)
 gpio 设置中断服务。
 
xf_err_t xf_hal_gpio_set_intr_type (xf_gpio_num_t gpio_num, xf_hal_gpio_intr_type_t intr_type)
 设置 gpio 中断类型。
 
xf_err_t xf_hal_gpio_set_intr_enable (xf_gpio_num_t gpio_num)
 设置 gpio 启用中断。
 
xf_err_t xf_hal_gpio_set_intr_disable (xf_gpio_num_t gpio_num)
 设置 gpio 禁用中断。
 
xf_err_t xf_hal_gpio_set_level (xf_gpio_num_t gpio_num, bool level)
 设置 gpio 设置电平高低。
 
bool xf_hal_gpio_get_level (xf_gpio_num_t gpio_num)
 获取 gpio 电平高低。
 

详细描述

通用输入输出。

宏定义说明

◆ XF_HAL_GPIO_NUM_NONE

#define XF_HAL_GPIO_NUM_NONE   ((xf_gpio_num_t)-1)

类型定义说明

◆ xf_gpio_num_t

typedef uint32_t xf_gpio_num_t

gpio 序号。

在文件 xf_hal_gpio.h44 行定义.

◆ xf_hal_gpio_irq_cb_t

typedef void(* xf_hal_gpio_irq_cb_t) (xf_gpio_num_t gpio_num, bool level, void *user_data)

gpio 中断回调函数原型。

参数
gpio_num产生中断的 gpio 的序号。
level当前 gpio 电平。
user_data用户数据,见 xf_hal_gpio_set_intr_cbxf_hal_gpio_set_intr_isruser_data 参数。

在文件 xf_hal_gpio.h57 行定义.

◆ xf_hal_gpio_intr_type_t

gpio 的中断类型。

◆ xf_hal_gpio_dir_t

gpio 的方向。

◆ xf_hal_gpio_pull_t

gpio 的上下拉。

◆ xf_hal_gpio_callback_t

中断回调结构体。

◆ xf_hal_gpio_cmd_t

gpio 命令枚举。用于对接 gpio 设置的命令。

注解
普通用户可忽略,移植者需注意。

◆ xf_hal_gpio_config_t

gpio 配置结构体。用于对接 gpio 设置的参数。

注解
普通用户可忽略,移植者需注意。

枚举类型说明

◆ _xf_hal_gpio_intr_type_t

gpio 的中断类型。

枚举值
_XF_HAL_GPIO_INTR_BASE 

基础类型

XF_HAL_GPIO_INTR_TYPE_DISABLE 

禁用中断

XF_HAL_GPIO_INTR_TYPE_RISING 

上升沿中断

XF_HAL_GPIO_INTR_TYPE_FALLING 

下降沿中断

XF_HAL_GPIO_INTR_TYPE_ANY 

双边沿中断

_XF_HAL_GPIO_INTR_TYPE_MAX 

中断类型最大值

在文件 xf_hal_gpio.h62 行定义.

◆ _xf_hal_gpio_dir_t

gpio 的方向。

枚举值
_XF_HAL_GPIO_DIR_BASE 

gpio方向的最小值

XF_HAL_GPIO_DIR_IN 

gpio 输入

XF_HAL_GPIO_DIR_OUT 

gpio 输出

XF_HAL_GPIO_DIR_OUT_OD 

gpio 开漏输出

_XF_HAL_GPIO_DIR_MAX 

gpio 方向的最大值

在文件 xf_hal_gpio.h76 行定义.

◆ _xf_hal_gpio_pull_t

gpio 的上下拉。

枚举值
_XF_HAL_GPIO_PULL_BASE 

gpio 上下拉的最小值

XF_HAL_GPIO_PULL_NONE 

gpio 浮空模式

XF_HAL_GPIO_PULL_UP 

gpio 上拉模式

XF_HAL_GPIO_PULL_DOWN 

gpio 下拉模式

_XF_HAL_GPIO_PULL_MAX 

gpio 上下拉的最大值

在文件 xf_hal_gpio.h89 行定义.

◆ _xf_hal_gpio_cmd_t

gpio 命令枚举。用于对接 gpio 设置的命令。

注解
普通用户可忽略,移植者需注意。
枚举值
XF_HAL_GPIO_CMD_DEFAULT 

默认参数命令,在创建设备时优先执行

XF_HAL_GPIO_CMD_DIRECTION 

方向命令,见 xf_hal_gpio_config_t::direction

XF_HAL_GPIO_CMD_PULL 

上下拉命令,见 xf_hal_gpio_config_t::pull

XF_HAL_GPIO_CMD_SPEED 

速度命令,见 xf_hal_gpio_config_t::speed

XF_HAL_GPIO_CMD_INTR_ENABLE 

中断启用命令,见 xf_hal_gpio_config_t::intr_enable

XF_HAL_GPIO_CMD_INTR_TYPE 

中断类型命令,见 xf_hal_gpio_config_t::intr_type

XF_HAL_GPIO_CMD_INTR_CB 

中断回调命令,见 xf_hal_gpio_config_t::cb

XF_HAL_GPIO_CMD_INTR_ISR 

中断服务命令,见 xf_hal_gpio_config_t::isr

XF_HAL_GPIO_CMD_ALL 

默认设置命令,在创建设备时其次执行

在文件 xf_hal_gpio.h112 行定义.

函数说明

◆ xf_hal_gpio_init()

xf_err_t xf_hal_gpio_init ( xf_gpio_num_t  gpio_num,
xf_hal_gpio_dir_t  direction 
)

gpio 初始化函数。使用 gpio 之前必须要进行初始化。

参数
gpio_numgpio 的序号。
directiongpio方向,可以是输入,输出,开漏输出。
返回
xf_err_t
  • XF_OK 成功初始化
  • other 初始化失败

在文件 xf_hal_gpio.c50 行定义.

◆ xf_hal_gpio_deinit()

xf_err_t xf_hal_gpio_deinit ( xf_gpio_num_t  gpio_num)

gpio 反初始化。恢复到未初始化状态且回收相关资源。

参数
gpio_numgpio 的序号。
返回
xf_err_t
  • XF_OK 成功反初始化
  • XF_ERR_UNINIT 该 gpio 未初始化
  • other 反初始化失败

在文件 xf_hal_gpio.c76 行定义.

◆ xf_hal_gpio_set_direction()

xf_err_t xf_hal_gpio_set_direction ( xf_gpio_num_t  gpio_num,
xf_hal_gpio_dir_t  direction 
)

gpio 设置方向。

参数
gpio_numgpio 的序号。
directiongpio 的方向,可以是输入,输出,开漏输出。
返回
xf_err_t
  • XF_OK 成功设置方向
  • XF_ERR_UNINIT 该 gpio 未初始化
  • other 设置方向失败

在文件 xf_hal_gpio.c90 行定义.

◆ xf_hal_gpio_set_pull()

xf_err_t xf_hal_gpio_set_pull ( xf_gpio_num_t  gpio_num,
xf_hal_gpio_pull_t  pull 
)

gpio 设置上下拉模式。

参数
gpio_numgpio 的序号。
pull上下拉模式。可以是浮空,上拉,下拉。
返回
xf_err_t
  • XF_OK 成功设置上下拉模式
  • XF_ERR_UNINIT 该 gpio 未初始化
  • other 上下拉模式设置失败

在文件 xf_hal_gpio.c115 行定义.

◆ xf_hal_gpio_set_speed()

xf_err_t xf_hal_gpio_set_speed ( xf_gpio_num_t  gpio_num,
uint32_t  speed 
)

gpio 速度设置。

注解
不是所有的芯片都支持速度的设置。
参数
gpio_numgpio 的序号。
speedgpio 的速度(只有 25 位有效, 范围 0 ~ 33554431),单位为 hz
返回
xf_err_t
  • XF_OK 成功设置速度
  • XF_ERR_UNINIT 该 gpio 未初始化
  • other 设置速度失败

在文件 xf_hal_gpio.c140 行定义.

◆ xf_hal_gpio_set_intr_cb()

xf_err_t xf_hal_gpio_set_intr_cb ( xf_gpio_num_t  gpio_num,
xf_hal_gpio_irq_cb_t  callback,
void *  user_data 
)

gpio 设置中断回调。

注意
cb 和 isr 相比,中断回调(cb)是使用任务进行异步的回调, 此回调可以进行打印等操作,但是实时性不会很好。
参数
gpio_numgpio 的序号。
callback回调函数。
user_data自定义的参数。
返回
xf_err_t
  • XF_OK 成功设置中断回调
  • XF_ERR_UNINIT 该 gpio 未初始化
  • other 设置中断回调失败

在文件 xf_hal_gpio.c165 行定义.

◆ xf_hal_gpio_set_intr_isr()

xf_err_t xf_hal_gpio_set_intr_isr ( xf_gpio_num_t  gpio_num,
xf_hal_gpio_irq_cb_t  callback,
void *  user_data 
)

gpio 设置中断服务。

注意
isr 和 cb 相比,中断服务(isr)运行在中断函数内, 此回调不要打印,但是实时性会更高。
参数
gpio_numgpio 的序号。
callback回调服务函数。
user_data自定义的参数。
返回
xf_err_t
  • XF_OK 成功设置中断服务
  • XF_ERR_UNINIT 该 gpio 未初始化
  • other 设置中断服务失败

在文件 xf_hal_gpio.c191 行定义.

◆ xf_hal_gpio_set_intr_type()

xf_err_t xf_hal_gpio_set_intr_type ( xf_gpio_num_t  gpio_num,
xf_hal_gpio_intr_type_t  intr_type 
)

设置 gpio 中断类型。

参数
gpio_numgpio 的序号。
intr_type可以是上升沿中断,下降沿中断,双边沿中断或者禁用中断。
返回
xf_err_t
  • XF_OK 成功设置中断类型
  • XF_ERR_UNINIT 该 gpio 未初始化
  • other 设置中断类型失败

在文件 xf_hal_gpio.c217 行定义.

◆ xf_hal_gpio_set_intr_enable()

xf_err_t xf_hal_gpio_set_intr_enable ( xf_gpio_num_t  gpio_num)

设置 gpio 启用中断。

参数
gpio_numgpio 的序号。
返回
xf_err_t
  • XF_OK 成功设置中断启动
  • XF_ERR_UNINIT 该 gpio 未初始化
  • other 设置中断启动失败

在文件 xf_hal_gpio.c242 行定义.

◆ xf_hal_gpio_set_intr_disable()

xf_err_t xf_hal_gpio_set_intr_disable ( xf_gpio_num_t  gpio_num)

设置 gpio 禁用中断。

参数
gpio_numgpio 的序号。
返回
xf_err_t
  • XF_OK 成功设置中断禁用
  • XF_ERR_UNINIT 该 gpio 未初始化
  • other 设置中断禁用失败

在文件 xf_hal_gpio.c267 行定义.

◆ xf_hal_gpio_set_level()

xf_err_t xf_hal_gpio_set_level ( xf_gpio_num_t  gpio_num,
bool  level 
)

设置 gpio 设置电平高低。

参数
gpio_numgpio 的序号。
level电平高低,1 为高电平,0 为低电平。
返回
xf_err_t
  • XF_OK 成功设置
  • XF_ERR_UNINIT 该 gpio 未初始化
  • other 设置电平失败

在文件 xf_hal_gpio.c292 行定义.

◆ xf_hal_gpio_get_level()

bool xf_hal_gpio_get_level ( xf_gpio_num_t  gpio_num)

获取 gpio 电平高低。

参数
gpio_numgpio 的序号。
返回
true 高电平
false 低电平

在文件 xf_hal_gpio.c307 行定义.