【esp32】GPIO引脚功能使用集合

本文主要介绍 esp32 这块芯片的GPIO 口功能使用以及软硬件设计注意事项

📋 个人简介

0. 引脚整体说明

GPIO36: 只能作为输入不能输出; ADC1通道0的采集引脚

GPIO39: 只能作为输入不能输出; ADC1通道3的采集引脚

GPIO34: 只能作为输入不能输出; ADC1通道6的采集引脚

GPIO35: 只能作为输入不能输出; ADC1通道7的采集引脚

GPIO32: 输入输出IO; ADC1通道4的采集引脚; 触摸检测通道9

GPIO33: 输入输出IO; ADC1通道5的采集引脚; 触摸检测通道8

GPIO25: 输入输出IO; ADC2通道8的采集引脚; DAC输出通道1

GPIO26: 输入输出IO; ADC2通道9的采集引脚; DAC输出通道2

GPIO27: 输入输出IO; ADC2通道7的采集引脚; 触摸检测通道7

GPIO14: 上电默认输出一个高脉冲(600ms);输入输出IO; ADC2通道6的采集引脚; 触摸检测通道6; JTMS; HSPI_CLK; HS2_CLK; SD_CLK

GPIO12: 模组启动时必须保证为低电平,内部默认下拉,;输入输出IO; ADC2通道5的采集引脚; 触摸检测通道5; JTDI; HSPI_Q; HS2_DATA2; SD_DATA2

GPIO13: 输入输出IO; ADC2通道4的采集引脚; 触摸检测通道4; JTCLK; HSPI_D; HS2_DATA3; SD_DATA3

GPIO9: 连接ESP32内部SPI闪存,用户不要使用其作为普通IO.可以连接外部Flash或SRAM

GPIO10: 连接ESP32内部SPI闪存,用户不要使用其作为普通IO.可以连接外部Flash或SRAM

GPIO11: 连接ESP32内部SPI闪存,作为闪存的片选,用户不要使用.

GPIO6: 连接ESP32内部SPI闪存,用户不要使用其作为普通IO.可以连接外部Flash或SRAM

GPIO7: 连接ESP32内部SPI闪存,用户不要使用其作为普通IO.可以连接外部Flash或SRAM

GPIO8: 连接ESP32内部SPI闪存,用户不要使用其作为普通IO.可以连接外部Flash或SRAM

GPIO15: 输入输出IO; ADC2通道3的采集引脚; 触摸检测通道3; JTDO; HSPI_CS; HS2_CMD; SD_CMD

GPIO2: 输入输出IO; ADC2通道2的采集引脚; 触摸检测通道2; HSPI_WP; HS2_DATA0; SD_DATA0

GPIO0: 模组启动之前保持低电平进入程序下载模式;输入输出IO; ADC2通道1的采集引脚; 触摸检测通道1;

GPIO4: 输入输出IO; ADC2通道0的采集引脚; 触摸检测通道0; HSPI_HD; HS2_DATA1;

GPIO16: 输入输出IO; HS1_DATA4; USART2_RX(默认AT指令固件通信引脚);

GPIO17: 输入输出IO; HS1_DATA5; USART2_TX(默认AT指令固件通信引脚);

GPIO5: 上电默认输出一个低脉冲(200ms左右),正常运行输出高电平; 输入输出IO; VSPI_CS; HS1_DATA6;

GPIO18: 输入输出IO; VSPI_CLK; HS1_DATA7;

GPIO19: 输入输出IO; VSPI_Q;

GPIO21: 输入输出IO; VSPI_HD;

GPIO3: 输入输出IO; USART0_RX;(程序串口通信下载口)

GPIO1: 输入输出IO; USART0_TX;(程序串口通信下载口)

GPIO23: 输入输出IO; VSPI_D; HS1_STROBE;

1. 参考资料

1.2 I2C

ESP32有两个I2C通道,任何管脚都可以设置为SDA或SCL。将ESP32与Arduino IDE一起使用时,默认I2C引脚为:

GPIO 21(SDA)

GPIO 22(SCL)

1.3 SPI

默认情况下,SPI的pin映射为:

img

1.4 中断

所有GPIO都可以配置为中断。

1.5 Strapping pins

ESP32芯片具有以下Strapping pins:

  • GPIO 0
  • GPIO 2
  • GPIO 5(启动期间必须为高)
  • GPIO 12(启动期间必须低)
  • GPIO 15(启动期间必须为高)
    在这里插入图片描述

1.6数模转换器(DAC)

ESP32上有2 x 8位DAC通道,用于将数字信号转换为模拟电压信号输出。这些是DAC通道:

  • DAC1 (GPIO25)
  • DAC2 (GPIO26)

1.7 模组内部集成 flash引脚

在这里插入图片描述

  • GPIO6(CLK-SPICLK)、
  • GPIO7(CLK-SPIQ)、
  • GPIO8(CLK-SPID)
  • GPIO9(SD2-SPIHD)、
  • GPIO10(SD3-SPIWP)、
  • GPIO11(CMD- SPICS0)、.

除此之外,GPIO16 GPIO17 也不建议用作其他用途,用于与封装内 flash/PSRAM 通讯,不建议作其他用途。详见章节 2.5 芯片与 flash/PSRAM 的管脚对应关系。

1.8 只能设置为输入模式的引脚 only input

以下几个引脚不带输出驱动器或内置上拉/下拉电路,只能作为 【输入】引脚

  • GPIO 34
  • GPIO 35
  • GPIO 36
  • GPIO 37
  • GPIO 38
  • GPIO 39

在这里插入图片描述

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ESP32GPIO矩阵是一种灵活的GPIO复用方案,可以将多个GPIO引脚配置成一个矩阵,从而实现多路输入输出控制。这在一些需要读取大量输入/输出的应用中非常有用。 以下是ESP32GPIO矩阵使用步骤: 1. 配置GPIO矩阵控制器 使用esp32-hal-matrix.h库中的API函数来配置GPIO矩阵控制器,例如: ``` #include <esp32-hal-matrix.h> #define MATRIX_WIDTH 3 #define MATRIX_HEIGHT 2 #define MATRIX_SIZE (MATRIX_WIDTH*MATRIX_HEIGHT) gpio_matrix_t matrix; void setup() { // 配置GPIO矩阵控制器 matrix = gpio_matrix_inout(12, GPIO_NUM_0, false, true); // 将GPIO12映射到GPIO0 gpio_matrix_inout(13, GPIO_NUM_1, false, true); // 将GPIO13映射到GPIO1 gpio_matrix_inout(14, GPIO_NUM_2, false, true); // 将GPIO14映射到GPIO2 } ``` 以上代码将GPIO12、GPIO13、GPIO14映射到GPIO0、GPIO1、GPIO2。 2. 读取GPIO矩阵输入 使用esp32-hal-matrix.h库中的API函数来读取GPIO矩阵输入,例如: ``` #include <esp32-hal-matrix.h> void loop() { uint32_t keys[MATRIX_SIZE]; uint32_t num_keys = gpio_matrix_scan(keys, NULL, MATRIX_WIDTH, MATRIX_HEIGHT); for (int i = 0; i < num_keys; i++) { if (keys[i]) { // 在此处处理按键事件 } } } ``` 以上代码将读取GPIO矩阵的输入,并将按键事件处理程序放在循环中。 3. 控制GPIO矩阵输出 使用esp32-hal-matrix.h库中的API函数来控制GPIO矩阵输出,例如: ``` #include <esp32-hal-matrix.h> void setup() { // 配置GPIO矩阵控制器 matrix = gpio_matrix_inout(12, GPIO_NUM_0, false, true); // 将GPIO12映射到GPIO0 gpio_matrix_inout(13, GPIO_NUM_1, false, true); // 将GPIO13映射到GPIO1 gpio_matrix_inout(14, GPIO_NUM_2, false, true); // 将GPIO14映射到GPIO2 } void loop() { // 控制GPIO矩阵输出 gpio_matrix_out(0x01, 1, 0, MATRIX_WIDTH, MATRIX_HEIGHT); gpio_matrix_out(0x02, 2, 1, MATRIX_WIDTH, MATRIX_HEIGHT); gpio_matrix_out(0x04, 0, 1, MATRIX_WIDTH, MATRIX_HEIGHT); } ``` 以上代码将控制GPIO矩阵的输出,使用掩码字节来设置输出引脚。 希望这能够帮助到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

积跬步、至千里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值