9.3. 应用示例¶
以下是一个简单的 GPIO 使用示例,展示了如何初始化 GPIO、设置引脚方向、读取引脚状态以及配置中断。
#include <gx_gpio.h>
// 中断服务例程
static int gpio_interrupt_isr(int irq, void *pdata)
{
printf("num %d interrupt\n", irq);
return 0;
}
int gpio_example(void)
{
unsigned int val, port = 5;
// 初始化 GPIO 功能
gx_gpio_init();
// 设置 GPIO 引脚为输出模式
gx_gpio_set_direction(port, GX_GPIO_DIRECTION_OUTPUT);
// 获取 GPIO 引脚的方向(输入或输出)
val = gx_gpio_get_direction(port);
// 设置 GPIO 引脚输出高电平
gx_gpio_set_level(port, GX_HAL_GPIO_LEVEL_HIGH);
// 将 GPIO 引脚设置为输入模式
gx_gpio_set_direction(port, GX_GPIO_DIRECTION_INPUT);
// 获取 GPIO 引脚的输入电平状态
val = gx_gpio_get_level(port);
// 使能 GPIO 的中断,设置中断模式为下降沿触发
gx_gpio_enable_trigger(port, EDGE_FALLING, gpio_interrupt_isr, NULL);
// 关闭该引脚的中断模式
gx_gpio_disable_trigger(port);
}