APP GPIO_TE驱动
结构体
app_gpiote_param_t
结构体定义如下:
| 成员 | 描述 | 取值 |
|---|---|---|
|
app_io_type_t type |
设置IO类型(GPIOA/NORMAL/GPIOB/GPIOC/AON_GPIO/MSIO) |
参考app_io_evt_t中定义 |
|
uint32_t pin |
选择IO引脚 |
参考app_io_init_t中定义 |
|
app_io_mode_t mode |
中断触发模式 |
该参数的取值可以是下列值中的任意一个:
|
|
app_io_pull_t pull |
设置IO上拉/下拉/浮空 |
该参数的取值可以是下列值中的任意一个:
|
|
app_io_callback_t io_evt_cb |
中断回调函数指针 |
用户自定义 |
详细信息请参考文件:SDK_Folder\drivers\inc\app_gpiote.h。
接口函数
| API | 芯片 | ||||
|---|---|---|---|---|---|
| GR551x | GR5526 | GR5x25 | GR533x | GR5405 | |
|
app_gpiote_init |
Y |
Y |
Y |
Y |
Y |
|
app_gpiote_config |
Y |
Y |
Y |
Y |
Y |
| app_gpiote_deinit | Y | Y | Y | Y | Y |
app_gpiote_init
| 函数原型 |
uint16_t app_gpiote_init(const app_gpiote_param_t *p_params, uint8_t table_cnt) |
|---|---|
| 功能说明 |
初始化多组GPIO,并配置多组GPIO中断,并注册中断回调函数 |
| 输入参数 |
|
| 返回值 |
APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义 |
| 备注 |
回调函数形式参照typedef void (*app_io_callback_t)(app_io_evt_t *p_evt); HAL层已经实现中断标志位的清理,用户不用关心中断标志的清理,回调函数根据返回事件类型进行相应的处理即可。 |
app_gpiote_config
| 函数原型 |
uint16_t app_gpiote_config(const app_gpiote_param_t *p_config) |
|---|---|
| 功能说明 |
初始化GPIO,并配置GPIO中断,并注册中断回调函数(单个) |
| 输入参数 |
p_config:初始化参数的结构体指针 |
| 返回值 |
APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义 |
| 备注 |
app_gpiote_deinit
| 函数原型 | uint16_t app_gpiote_deinit(app_io_type_t type, uint32_t pin) |
|---|---|
| 功能说明 | 反初始化GPIO,并注销中断回调函数(单个) |
| 输入参数 |
|
| 返回值 | APP_DRV_xxx:详见SDK_Folder\drivers\inc\app_drv_error.h宏定义 |
| 备注 |
示例工程
GPIO_TE
示例工程主要调用GPIO_TE驱动接口,配置GPIO中断输入模式,实现按键输入功能。工程路径:SDK_Folder\projects\peripheral\gpio\app_gpio。
简介
同简介。
流程图
同流程图。
初始化参数
- IO引脚定义:
定义key0和key1按键输入引脚。
#define APP_GPIO_KEY0_PIN APP_KEY_UP_PIN #define APP_GPIO_KEY0_TYPE APP_KEY_UP_IO_TYPE #define APP_GPIO_KEY1_PIN APP_KEY_OK_PIN #define APP_GPIO_KEY1_TYPE APP_KEY_OK_IO_TYPE具体引脚定义,参见board_SK.h,如下key0按键输入引脚为AON_GPIO_1;key1按键输入为AON_GPIO_0。
/*******KEY DRIVER IO CONFIG********************/ #define APP_KEY_UP_IO_TYPE APP_IO_TYPE_AON #define APP_KEY_DOWN_IO_TYPE APP_IO_TYPE_AON #define APP_KEY_UP_PIN APP_IO_PIN_1 #define APP_KEY_DOWN_PIN APP_IO_PIN_0 - 定义初始化结构体,用于中断引脚、中断方式和中断回调函数。
const app_gpiote_param_t gpiote_param[] = { {APP_GPIO_KEY0_TYPE, APP_GPIO_KEY0_PIN, APP_IO_MODE_IT_FALLING, APP_IO_PULLUP, app_io_event_handler}, {APP_GPIO_KEY1_TYPE, APP_GPIO_KEY1_PIN, APP_IO_MODE_IT_FALLING, APP_IO_PULLUP, app_io_event_handler}, };
重要函数
实现GPIO中断配置
app_gpiote_init(gpiote_param, sizeof(gpiote_param) / sizeof(app_gpiote_param_t))测试验证
连接开发板到PC端,打开串口调试助手,连接串口。分别按下key0和key1,串口打印如下。
需根据原理图了解key0和key1对应的物理按键。
KEY0 pressed.
KEY1 pressed.