CN / EN
文档反馈
感谢关注汇顶文档,期待您的宝贵建议!
感谢您的反馈,祝您愉快!

GPIO Input & Output

GPIO Input & Output示例实现了GPIO的普通输入/输出功能。

  • 配置为普通输出时,通过程序能控制IO上电平的变化。
  • 配置为普通输入时,能通过程序读取IO上电平的高低。

GPIO Input & Output示例的源代码和工程文件位于SDK_Folder\projects\peripheral\gpio\gpio_output_input,其中工程文件在文件夹Keil_5下。

代码理解

示例工程流程图如图 10所示:

图 10 GPIO Input & Output示例工程流程图
  1. 配GPIO模块输入/输出模式。
    #define GPIO_DEFAULT_CONFIG                      \
    {                                                \
        .pin        = GPIO_PIN_ALL,                  \
        .mode       = GPIO_MODE_INPUT,               \
        .pull       = GPIO_PULLDOWN,                \
        .mux        = GPIO_PIN_MUX_GPIO,             \
    }
    
    gpio_init_t gpio_config = GPIO_DEFAULT_CONFIG;
    gpio_config.mode = GPIO_MODE_OUTPUT;
    gpio_config.pin  = GPIO_PIN_12;
    hal_gpio_init(GPIO1, &gpio_config);
    • pin:引脚配置ID,可选择GPIO_PIN_0 ~ GPIO_PIN_15任意组合。
    • mode:引脚工作模式,可选择GPIO_MODE_INPUT、GPIO_MODE_OUTPUT、GPIO_MODE_MUX 、GPIO_MODE_IT_RISING、GPIO_MODE_IT_FALLING、GPIO_MODE_IT_HIGH、GPIO_MODE_IT_LOW。
    • pull:上下拉电阻配置,可选择GPIO_NOPULL、GPIO_PULLUP、GPIO_PULLDOWN。
    • mux:pin_mux配置,参考GR551x Datasheet中的pin_mux配置表,输入/输出时需配置为GPIO_MUX_7。

    当需要配置为输入时,只需要修改mode:

    gpio_init.mode = GPIO_MODE_INPUT;
  2. 设置输出引脚电平。
    hal_gpio_write_pin(GPIO1, GPIO_PIN_12, GPIO_PIN_RESET);

    参数GPIO_PIN_RESET表示设置为低电平,GPIO_PIN_SET表示设置为高电平

  3. 读取输入引脚电平。
    pin_level = hal_gpio_read_pin(GPIO1, GPIO_PIN_13);

    pin_level为0表示低电平,为1表示高电平。

测试验证

  1. 用GProgrammer下载gpio_output_input.bin至开发板。
  2. 将开发板串口连接至PC端,打开并配置GRUart。
  3. 在GRUart的Receive Data窗口中将会显示IO口的输入/输出状态信息。

扫描关注

打开微信,使用“扫一扫”即可关注。