ESP32系列:GPIO基本输入输出操作实战

您所在的位置:网站首页 gpio0和gpio1 ESP32系列:GPIO基本输入输出操作实战

ESP32系列:GPIO基本输入输出操作实战

#ESP32系列:GPIO基本输入输出操作实战| 来源: 网络整理| 查看: 265

一、目的

        在前面的章节中我们已经介绍了ESP32的开发环境的搭建过程,从本篇开始我们将从最基本的GPIO控制讲起,介绍ESP32上面相关的外设操作。

二、介绍

        参考资料

        GPIO & RTC GPIO – ESP32 – — ESP-IDF Programming Guide latest documentation (espressif.com)https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/gpio.html

        esp32具有35个GPIO引脚,分别为GPIO0-GPIO23、GPIO25-GPIO27、GPIO32-GPIO39。

        注意:有些GPIO在一些芯片封装上没有,所以使用时一定要查阅一些对应的芯片手册。

        每一个引脚可以用作通用IO,也可以作为内部外设的输入输出信号。

GPIO

Analog Function

RTC GPIO

Comments

GPIO0

ADC2_CH1

RTC_GPIO11

Strapping pin

GPIO1

TXD

GPIO2

ADC2_CH2

RTC_GPIO12

Strapping pin

GPIO3

RXD

GPIO4

ADC2_CH0

RTC_GPIO10

GPIO5

Strapping pin

GPIO6

SPI0/1

GPIO7

SPI0/1

GPIO8

SPI0/1

GPIO9

SPI0/1

GPIO10

SPI0/1

GPIO11

SPI0/1

GPIO12

ADC2_CH5

RTC_GPIO15

Strapping pin; JTAG

GPIO13

ADC2_CH4

RTC_GPIO14

JTAG

GPIO14

ADC2_CH6

RTC_GPIO16

JTAG

GPIO15

ADC2_CH3

RTC_GPIO13

Strapping pin; JTAG

GPIO16

SPI0/1

GPIO17

SPI0/1

GPIO18

GPIO19

GPIO20

This pin is only available on ESP32-PICO-V3 chip package

GPIO21

GPIO22

GPIO23

GPIO25

ADC2_CH8

RTC_GPIO6

GPIO26

ADC2_CH9

RTC_GPIO7

GPIO27

ADC2_CH7

RTC_GPIO17

GPIO32

ADC1_CH4

RTC_GPIO9

GPIO33

ADC1_CH5

RTC_GPIO8

GPIO34

ADC1_CH6

RTC_GPIO4

GPI

GPIO35

ADC1_CH7

RTC_GPIO5

GPI

GPIO36

ADC1_CH0

RTC_GPIO0

GPI

GPIO37

ADC1_CH1

RTC_GPIO1

GPI

GPIO38

ADC1_CH2

RTC_GPIO2

GPI

GPIO39

ADC1_CH3

RTC_GPIO3

GPI

        注意

        GPIO0、GPIO2、GPIO5、GPIO12、GPIO15作为strapping引脚,也就是说芯片上电时会检查这些引脚的电压,具体细节可以查看芯片手册进行了解。

        SPI0/1会使用GPIO6-11、GPIO16-17,模组内部会使用这些引脚作为SPI flash/psram的引脚,故也不应该使用;

        GPIO12-15通常用作JTAG调试使用;

        GPIO34-39只能用作输入模式并且内部没有软件上拉或者下拉功能;

        ADC2引脚当WiFi功能被使用时禁止使用,所以建议使用ADC1。

         上图中排针旁边对应的数字就是GPIO x

        为了帮助大家理解IO交换矩阵和IO MUX,我从技术参考手册里面找来这张图帮助大家理解

         有些信号可以直接通过IO MUX直接送入外设,有些必须经过IO矩阵

        

         IO的内部上拉、下拉实现框图

        以上我们已经简单介绍了一些ESP32的GPIO,下面我们根据ESP-IDF开发框架来具体讲讲GPIO功能。

        GitHub – espressif/esp-idf: Espressif IoT Development Framework. Official development framework for Espressif SoCs.https://github.com/espressif/esp-idf

esp_err_t gpio_config(const gpio_config_t *pGPIOConfig)

        此接口用于配置GPIO,可以一次配置一个IO,也可以同时配置多个IO,前提是多个IO的属性相同。

        下面让我们来看一下gpio_config_t这个结构体的内容

        pin_bit_mask设置需要操作的GPIO引脚,例如我要设置GPIO1和GPIO33

        则pin_bit_mask应该设置为(1ULL



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3