ESP32的关于GPIO的IDF驱动,GPIO外设驱动位于ESP-IDF的components\esp-driver-gpio目录中,要使用GPIO功能,必须先导入以下头文件。

#include "driver/gpio.h"

GPIO的配置函数gpio_config,就类似于使用stm32标准库前,需要对GPIO进行初始化配置,esp其函数原型如下:

esp_err_t gpio_config(const gpio_config_t *pGPIOConfig);

其中pGPIOConfig是指向gpio_config_t结构体的指针。该函数具有返回值

ESP_OK表示操作成功,ESP_ERR_INVALID_ARG表示参数错误。

pGOPIOConfig为指向GPIO配置结构体指针,gpio_config_t结构体中各个成员变量如下:

typedef struct {
    uint64_t pin_bit_mask;   /*GPIO引脚*/
    gpio_mode_t mode;     /*GPIO模式*/
    gpio_pullup_t pull_up_en;    /*GPIO上拉配置 */
    gpio_pulldown_t pull_down_en;    /*GPIO下拉配置*/
    gpio_int_type_t intr_type;       /*GPIO中断类型*/

#if SOC_GPIO_SUPPORT_PIN_HYS_FILTER
gpio_hys_ctrl_mode_t hys_ctrl_mode;       
#endif
} gpio_config_t;

1)pin_bit_mask:设置管脚位。使用方法:1<<x(x:0~55)。

2)mode:设置管脚模式。此字段可以配置为GPIO_MODE_DISABLE禁用模式、GPIO_MODE_INPUT输入模式、GPIO_MODE_OUTPUT输出模式、GPIO_MODE_OUTPUT_OD开漏模式、GPIO_MODE_INPU_OUTPUT_OD开漏输入和输出模式和GPIO_MODE_INPUT_OUTPUT输入和输出模式。

3)pull_up_en:配置管脚是否需要上拉

4)pull_down_en:配置管教是否需要下拉

5)intr_type配置管脚中断类型。此字段可配置为GPIO_INTR_DISABLE禁用中断、GPIO_INTR_POSEDGE上升沿中断类型、GPIO_INTR_NEGEDGE下降沿中断类型、GPIO_INTR_ANYEDGE任意沿中断类型、GPIO_INTR_LOW_LEVEL低电平触发中断类型和GPIO_INTR_HIGH_LEVLE高电平触发类型。

gpio_set_level函数是用于配置某个GPIO引脚的输出电平,函数原型如下

esp_err_t gpio_set_level(gpio_num_t gpio_num, uint32_t levle);

函数形参:

gpio_num : GPIO引脚号

level : 输出电平。0表示低电平,1表示高电平

gpio_get_level用于获取某个GPIO引脚的电平,函数原型如下:

esp_err_t gpio_get_level(gpio_num_t gpio_num);

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐