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);
}