大学生刚毕业,在上海初创四人公司学习嵌入式第七天(纯esp32学习篇GPIO)
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);
更多推荐


所有评论(0)