ESP32 Arduino引脚分配参考:您应该使用哪些 GPIO 引脚?
ESP32 芯片有 48 个引脚,具有多种功能。并非所有 ESP32 开发板中的所有引脚都暴露出来,有些引脚无法使用。
关于如何使用 ESP32 GPIO 有很多问题。您应该使用什么引脚?您应该避免在项目中使用哪些引脚?这篇文章旨在成为 ESP32 GPIO 的简单易懂的参考指南。
下图显示了 ESP-WROOM-32 引脚排列。如果您使用ESP32 裸芯片构建定制板,可以将其用作参考:

注意:并非所有开发板都可以访问所有 GPIO,但无论您使用哪种开发板,每个特定 GPIO 都以相同的方式工作。如果您刚刚开始使用 ESP32,我们建议您阅读我们的指南:ESP32 开发板入门。

ESP32 外设
ESP32 外设包括:
18 个模数转换器 (ADC) 通道
3个SPI接口
3个UART接口
2个I2C接口
16个PWM输出通道
2 个数模转换器 (DAC)
2个I2S接口
10 个电容感应 GPIO
ADC(模数转换器)和DAC(数模转换器)功能被分配给特定的静态引脚。但是,您可以决定哪些引脚是 UART、I2C、SPI、PWM 等 - 您只需在代码中分配它们即可。由于 ESP32 芯片的多路复用功能,这是可能的。
虽然您可以在软件上定义引脚属性,但默认分配的引脚如下图所示(这是具有36 个引脚的ESP32 DEVKIT V1 DOIT 板的示例- 引脚位置可能会根据制造商而变化)。

此外,还有一些具有特定功能的引脚,这些功能使其适合或不适合特定项目。下表显示了哪些引脚最适合用作输入、输出以及哪些引脚需要小心。
以绿色突出显示的引脚可以使用。以黄色突出显示的可以使用,但您需要注意,因为它们可能主要在启动时出现意外行为。不建议将红色突出显示的引脚用作输入或输出。
| GPIO | Input | Output | Notes |
| 0 | pulled up | OK | outputs PWM signal at boot, must be LOW to enter flashing mode |
| 1 | TX pin | OK | debug output at boot |
| 2 | OK | OK | connected to on-board LED, must be left floating or LOW to enter flashing mode |
| 3 | OK | RX pin | HIGH at boot |
| 4 | OK | OK | |
| 5 | OK | OK | outputs PWM signal at boot, strapping pin |
| 6 | x | x | connected to the integrated SPI flash |
| 7 | x | x | connected to the integrated SPI flash |
| 8 | x | x | connected to the integrated SPI flash |
| 9 | x | x | connected to the integrated SPI flash |
| 10 | x | x | connected to the integrated SPI flash |
| 11 | x | x | connected to the integrated SPI flash |
| 12 | OK | OK | boot fails if pulled high, strapping pin |
| 13 | OK | OK | |
| 14 | OK | OK | outputs PWM signal at boot |
| 15 | OK | OK | outputs PWM signal at boot, strapping pin |
| 16 | OK | OK | |
| 17 | OK | OK | |
| 18 | OK | OK | |
| 19 | OK | OK | |
| 21 | OK | OK | |
| 22 | OK | OK | |
| 23 | OK | OK | |
| 25 | OK | OK | |
| 26 | OK | OK | |
| 27 | OK | OK | |
| 32 | OK | OK | |
| 33 | OK | OK | |
| 34 | OK | input only | |
| 35 | OK | input only | |
| 36 | OK | input only | |
| 39 | OK | input only |
继续阅读有关 ESP32 GPIO 及其功能的更详细和深入的分析。
仅输入引脚
GPIO 34 至 39 是 GPI – 仅输入引脚。这些引脚没有内部上拉或下拉电阻。它们不能用作输出,因此只能将这些引脚用作输入:
- 通用输入输出口34
- 通用输入输出口35
- 通用输入输出口36
- 通用输入输出口39
ESP-WROOM-32 上集成的 SPI 闪存
某些 ESP32 开发板中暴露了 GPIO 6 至 GPIO 11。不过,这些引脚连接到 ESP-WROOM-32 芯片上的集成 SPI Flash,不建议用于其他用途。因此,不要在您的项目中使用这些引脚:
- GPIO 6(SCK/CLK)
- GPIO 7(SDO/SD0)
- GPIO 8(SDI/SD1)
- GPIO 9 (SHD/SD2)
- GPIO 10(SWP/SD3)
- GPIO 11(CSC/CMD)
电容式触摸 GPIO
ESP32 有 10 个内部电容式触摸传感器。它们可以感知任何带有电荷的物体的变化,比如人类皮肤。因此,他们可以检测用手指触摸 GPIO 时引起的变化。这些引脚可以轻松集成到电容垫中并取代机械按钮。电容式触摸引脚还可用于将ESP32 从深度睡眠中唤醒。
这些内部触摸传感器连接到这些 GPIO:
- T0(GPIO 4)
- T1(GPIO 0)
- T2(GPIO 2)
- T3(GPIO 15)
- T4(GPIO 13)
- T5(GPIO 12)
- T6(GPIO 14)
- T7(GPIO 27)
- T8(GPIO 33)
- T9(GPIO 32)
模数转换器 (ADC)
ESP32 具有 18 x 12 位 ADC 输入通道(而ESP8266 只有 1x 10 位 ADC)。这些是可用作 ADC 的 GPIO 和各自的通道:
- ADC1_CH0(GPIO 36)
- ADC1_CH1(GPIO 37)
- ADC1_CH2(GPIO 38)
- ADC1_CH3(GPIO 39)
- ADC1_CH4(GPIO 32)
- ADC1_CH5(GPIO 33)
- ADC1_CH6(GPIO 34)
- ADC1_CH7(GPIO 35)
- ADC2_CH0(GPIO 4)
- ADC2_CH1(GPIO 0)
- ADC2_CH2(GPIO 2)
- ADC2_CH3(GPIO 15)
- ADC2_CH4(GPIO 13)
- ADC2_CH5(GPIO 12)
- ADC2_CH6(GPIO 14)
- ADC2_CH7(GPIO 27)
- ADC2_CH8(GPIO 25)
- ADC2_CH9(GPIO 26)
注意:使用 Wi-Fi 时不能使用 ADC2 引脚。因此,如果您使用 Wi-Fi 并且无法从 ADC2 GPIO 获取值,则可以考虑改用 ADC1 GPIO。那应该可以解决你的问题。
ADC 输入通道具有 12 位分辨率。这意味着您可以获得范围从0到4095的模拟读数,其中0对应0V,4095对应3.3V。您还可以在代码和 ADC 范围上设置通道分辨率。
ESP32 ADC 引脚不具有线性行为。您可能无法区分 0 和 0.1V,或 3.2 和 3.3V。使用 ADC 引脚时需要记住这一点。您将得到类似于下图所示的行为。

数模转换器 (DAC)
ESP32 上有 2 x 8 位 DAC 通道,用于将数字信号转换为模拟电压信号输出。这些是 DAC 通道:
- DAC1(GPIO25)
- DAC2(GPIO26)
RTC GPIO
ESP32 上有 RTC GPIO 支持。当 ESP32 处于深度睡眠状态时,可以使用路由到 RTC 低功耗子系统的 GPIO。当超低功耗 (ULP) 协处理器运行时,这些 RTC GPIO 可用于将 ESP32 从深度睡眠状态唤醒。以下 GPIO 可用作外部唤醒源.
- RTC_GPIO0 (GPIO36)
- RTC_GPIO3(GPIO39)
- RTC_GPIO4(GPIO34)
- RTC_GPIO5(GPIO35)
- RTC_GPIO6 (GPIO25)
- RTC_GPIO7 (GPIO26)
- RTC_GPIO8 (GPIO33)
- RTC_GPIO9(GPIO32)
- RTC_GPIO10(GPIO4)
- RTC_GPIO11(GPIO0)
- RTC_GPIO12(GPIO2)
- RTC_GPIO13(GPIO15)
- RTC_GPIO14(GPIO13)
- RTC_GPIO15(GPIO12)
- RTC_GPIO16(GPIO14)
- RTC_GPIO17 (GPIO27)
脉宽调制
ESP32 LED PWM 控制器具有 16 个独立通道,可配置为生成具有不同属性的 PWM 信号。所有可用作输出的引脚均可用作 PWM 引脚(GPIO 34 至 39 不能生成 PWM)。
要设置 PWM 信号,您需要在代码中定义这些参数:
- 信号的频率;
- 占空比;
- 脉宽调制通道;
- 您要输出信号的 GPIO。
I2C
ESP32 有两个 I2C 通道,任何引脚都可以设置为 SDA 或 SCL。当将 ESP32 与 Arduino IDE 结合使用时,默认的 I2C 引脚为:
- GPIO 21(SDA)
- GPIO 22(SCL)
如果在使用wire库时想使用其他引脚,只需调用:
Wire.begin(SDA, SCL);
SPI
默认情况下,SPI 的引脚映射为:
| SPI | 莫西 | 味噌 | 时钟脉冲 | CS |
| VSPI | 通用输入输出口23 | 通用输入输出口19 | 通用输入输出口18 | 通用输入输出口5 |
| HSPI | 通用输入输出口13 | 通用输入输出口12 | 通用输入输出口14 | 通用输入输出口15 |
中断
所有 GPIO 均可配置为中断。
捆扎别针
ESP32 芯片有以下捆扎引脚:
- GPIO 0(必须为低电平才能进入启动模式)
- GPIO 2(启动期间必须悬空或为低电平)
- 通用输入输出口4
- GPIO 5(启动期间必须为高电平)
- GPIO 12(启动期间必须为低电平)
- GPIO 15(启动期间必须为高电平)
这些用于将 ESP32 置于引导加载程序或闪存模式。在大多数内置 USB/串口的开发板上,您无需担心这些引脚的状态。该板将引脚置于正确的状态以进行闪烁或启动模式。
但是,如果您有外设连接到这些引脚,则在尝试上传新代码、使用新固件刷新 ESP32 或重置开发板时可能会遇到困难。如果您有一些外设连接到捆绑引脚,并且您在上传代码或刷新 ESP32 时遇到问题,可能是因为这些外设阻止了 ESP32 进入正确的模式。
启动时引脚为高电平
一些 GPIO 在启动或复位时将其状态更改为高电平或输出 PWM 信号。这意味着,如果您有连接到这些 GPIO 的输出,则当 ESP32 重置或启动时,您可能会得到意外的结果。
- 通用输入输出口1
- 通用输入输出口3
- 通用输入输出口5
- GPIO 6 至 GPIO 11(连接至 ESP32 集成 SPI 闪存 – 不建议使用)。
- 通用输入输出口14
- 通用输入输出口15
启用(EN)
使能 (EN) 是 3.3V 稳压器的使能引脚。它被拉高,因此连接到地以禁用 3.3V 稳压器。例如,这意味着您可以使用连接到按钮的该引脚来重新启动 ESP32。
GPIO 电流消耗
根据 ESP32 数据表中的“推荐工作条件”部分,每个 GPIO 消耗的绝对最大电流为 40mA。
ESP32 内置霍尔效应传感器
ESP32 还具有内置霍尔效应传感器,可检测周围磁场的变化。
相关文章:
ESP32 Arduino引脚分配参考:您应该使用哪些 GPIO 引脚?
ESP32 芯片有 48 个引脚,具有多种功能。并非所有 ESP32 开发板中的所有引脚都暴露出来,有些引脚无法使用。 关于如何使用 ESP32 GPIO 有很多问题。您应该使用什么引脚?您应该避免在项目中使用哪些引脚?这篇文章旨在成为 ESP32 GP…...
【链接装载与库】 Linux共享库的组织
Linux共享库的组织 由于动态链接的诸多优点,大量的程序开始使用动态链接机制,导致系统里面存在数量 极为庞大的共享对象。如果没有很好的方法将这些共享对象组织起来,整个系统中的共享对象文件则会散落在各个目录下,给长期的维护…...
大模型时代的机器人研究
机器人研究的一个长期目标是开发能够在物理上不同的环境中执行无数任务的“多面手”机器人。对语言和视觉领域而言,大量的原始数据可以训练这些模型,而且有虚拟应用程序可用于应用这些模型。与上述两个领域不同,机器人技术由于被锚定在物理世…...
devops步骤 -- jenkins安装
安装的docker-compose ##安装步骤参考: https://editor.csdn.net/md/?articleId133070011 编写docker-compose.yml version: 3 services: # 集合docker_jenkins:user: root # 为了避免一些…...
docker命令大全
1、查看Docker 容器占用的空间 docker ps -s2、查看所有容器 docker ps -a3、启动、关闭、重启一个已存在的容器 docker start <容器ID> docker stop <容器ID> docker restart <容器ID> 4、进入容器,退出终端的时候不会关闭container的ma…...
【EI会议征稿】第三届区块链、信息技术与智慧金融国际学术会议 (ICBIS2024)
第三届区块链、信息技术与智慧金融国际学术会议 (ICBIS2024) The 3rd International Academic Conference on Blockchain, Information Technology and Smart Finance 第三届区块链、信息技术与智慧金融国际学术会议 (ICBIS2024) 将于2024年2月23-25日在马来西亚举行。本次会…...
算法岗面经
诸神缄默不语-个人CSDN博文目录 呃这个是我之前写的,理论上我应该搜集题目→做出解答这样的,但是我现在不再继续找工作了,所以感觉这些题目用不到了,我就直接把之前整理的这些资料发出来得了。 以后有缘分的话会继续补的…...
Vue 事件修饰符
Vue 事件修饰符 在 Vue 中,事件修饰符允许我们在处理 DOM 事件时添加一些特殊的修饰符,以便更方便地控制事件的行为。以下是常用的 Vue 事件修饰符: .stop .stop 修饰符用于阻止事件冒泡,即停止事件在父元素之间的传播。 示例…...
FD-Align论文阅读
FD-Align: Feature Discrimination Alignment for Fine-tuning Pre-Trained Models in Few-Shot Learning(NeurIPS 2023) 主要工作是针对微调的和之前的prompt tuining,adapter系列对比 Motivation: 通过模型对虚假关联性的鲁棒…...
bug:Junit5报错,@SpringBootTest没有运行
1、首先解决Junit5报错 java.lang.NoClassDefFoundError: org/junit/platform/launcher/core/LauncherFactory 添加依赖 implementation org.junit.platform:junit-platform-launcher:1.8.2java.lang.IllegalArgumentException: Error: test loader org.eclipse.jdt.internal.…...
Clickhouse学习笔记(4)—— Clickhouse SQL
insert insert操作和mysql一致 标准语法:insert into [table_name] values(…),(….)从表到表的插入:insert into [table_name] select a,b,c from [table_name_2] update 和 delete ClickHouse 提供了 Delete 和 Update 的能力,这类操作…...
Centos, RockyLinux 常用软件安装汇总
一、基本指令: 命令作用clear清屏pwd显示当前路径cat / more显示文本文档uname -a查看当前版本hostnamectl查看当前版本cat /etc/redhat-release查看当前版本free查看剩余内存df -h[查看磁盘剩余空间]du -sh 查看文件夹名"dir"占用的空间lsof -i:8080查看…...
Lua更多语法与使用
文章目录 目的错误处理元表和元方法垃圾回收协程模块面向对象总结 目的 在前一篇文章: 《Lua入门使用与基础语法》 中介绍了一些基础的内容。这里将继续介绍Lua一些更多的内容。 同样的本文参考自官方手册: https://www.lua.org/manual/ 错误处理 下…...
探秘亚马逊云科技海外服务器 | 解析跨境云计算的前沿技术与应用
目录 一、什么是海外服务器 二、不同主流海外云服务器对比 三、海外服务器的创建(亚马逊为例) 四、个人总结 一、什么是海外服务器 亚马逊云科技海外服务器:指的是部署在世界各地的亚马逊数据中心中的服务器设备。这些服务器提供了计算、存储、数据库、网络等各…...
UnityAI——动物迁徙中的跟随实现实例
大家好,我是七七,今天来给大家介绍的是Unity中用操控行为实现的跟随领队行为。 看本文若是想了解和实现,只看本文即可,若是想彻底弄透,建议从七七的游戏AI专栏开始看。 废话不多说,先上视频: …...
堆的应用-----Top k 问题
目录 前言 Topk问题 1.问题描述 2.解决方法 3.代码实现(C/C) 前言 在人工智能算法岗位的面试中,TopK是问得最多的几个问题之一: 到底有几种方法? 这些方案里蕴含的优化思路究竟是怎么样的? 为啥T…...
11月14日星期二今日早报简报微语报早读
11月14日星期二,农历十月初二,早报微语早读。 1、江西南城县:限时发放购房补贴政策,三孩家庭每平方米最高补贴500元; 2、2023年中国内地电影市场累计票房突破500亿元; 3、市场监管总局:在全国…...
Spark读取excel文件
文章目录 一、excel数据源转成csv二、Spark读取csv文件(一)启动spark-shell(二)读取csv生成df(三)查看df内容一、excel数据源转成csv 集群bigdata - ubuntu: 192.168.191.19master(bigdata1) - centos: 192.168.23.78 slave1(bigdata2) - centos: 192.168.23.79 slave2(b…...
LLM大语言模型(典型ChatGPT)入门指南
文章目录 一、基础概念学习篇1.1 langchain视频学习笔记1.2 Finetune LLM视频学习笔记 二、实践篇2.1 预先下载模型:2.2 LangChain2.3 Colab demo2.3 text-generation-webui 三、国内项目实践langchain-chatchat 一、基础概念学习篇 1.1 langchain视频学习笔记 lan…...
Spring IOC - Bean的生命周期之实例化
在Spring启动流程文章中讲到,容器的初始化是从refresh方法开始的,其在初始化的过程中会调用finishBeanFactoryInitialization方法。 而在该方法中则会调用DefaultListableBeanFactory#preInstantiateSingletons方法,该方法的核心作用是初始化…...
BLE四大广播模式详解:可连接/不可连接/定向/周期广播
一、前言在低功耗蓝牙(BLE)开发中,广播(Advertising)是设备发现、连接建立、数据广播、设备重连的核心基石,所有BLE交互流程均始于广播报文的收发。不同于传统经典蓝牙,BLE所有广播行为标准化、…...
人类防伪指南:为什么你越写错字,HR越信你是真人?
前言各位码农、算法侠、CtrlC/V十级学者请注意:你有没有过这样的经历?辛辛苦苦肝了一晚上文档,逻辑严密、语法丝滑、连Markdown都对齐得像军训方阵,结果老板幽幽来一句:“这真是你自己写的?”那一刻&#x…...
巧用对称性与平均值原理:低成本实现高精度电阻分压器校准
1. 项目概述:用数学思维突破测量设备的精度极限在电子实验室里捣鼓精密电路,尤其是涉及到电压基准、信号调理或者高精度ADC前端时,一个绕不开的坎就是精密分压器。你可能在设计一个需要0.1%甚至更高精度的分压网络,但手头的万用表…...
2026这6款神级降AIGC平台大公开,一键让AIGC率直逼绝对安全线!
步入 2026 年,学术圈的风向早已不是从前的模样。曾经大家还在为查重率发愁,如今却陷入了更棘手的困境——如何在不破坏论文专业性的前提下,彻底消除 AI 痕迹?随着 AIGC 检测技术不断进化,高校对论文的审核标准也愈发严…...
如何利用开源工具Unlock-Music解决音乐平台加密格式兼容问题
如何利用开源工具Unlock-Music解决音乐平台加密格式兼容问题 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https://gi…...
基于Shapley值与随机森林的印度CPI通胀预测与特征重要性分析
1. 项目概述与核心价值在宏观经济预测领域,通胀预测的准确性直接关系到货币政策制定、市场预期管理乃至社会民生稳定。传统的计量经济学模型,如基于菲利普斯曲线的线性回归,虽然具有良好的可解释性,但在捕捉现实世界中复杂、非线性…...
Elsevier-Tracker:5分钟打造您的学术论文审稿进度监控系统
Elsevier-Tracker:5分钟打造您的学术论文审稿进度监控系统 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 在科研工作者的日常中,论文审稿进度追踪常常成为消耗时间与精力的隐形负担。每天反…...
长期使用Taotoken Token Plan套餐带来的成本节约感受
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用Taotoken Token Plan套餐带来的成本节约感受 1. 项目背景与成本挑战 我们团队负责一个持续进行文本分析与内容生成的内部…...
数据库原理核心考点全解析
数据库原理期末考试核心知识点可系统性地划分为基础理论、数据模型与设计、SQL与查询优化、事务管理与并发控制、数据库安全与完整性以及数据库新技术六大模块。其核心内容与逻辑关系如下表所示: 模块核心知识点简要说明1. 基础理论数据库系统特点、三级模式结构、…...
SISSO符号回归算法:革命性可解释AI模型的3大技术突破
SISSO符号回归算法:革命性可解释AI模型的3大技术突破 【免费下载链接】SISSO A data-driven method combining symbolic regression and compressed sensing for accurate & interpretable models. 项目地址: https://gitcode.com/gh_mirrors/si/SISSO 在…...
