详解ESP32模块的引脚分配图和定义

2023-09-21 13:53:36

最近在研究单片机,买了一块ESP32开发板,记录一下所有引脚的定义。

ESP32的优势之一是它的GPIO比ESP8266多得多。您不必兼顾或多复用IO。有几件事要注意,因此请仔细查看引脚分配图。

ESP32外围设备和I/O

尽管ESP32总共有48个GPIO引脚,但其中只有25个引出到开发板两侧的插头。这些引脚可以分配给各种外围职责,包括:

●    15个ADC通道:15个12位SAR ADC的通道。ADC范围可以在固件中设置为0-1V,0-1.4V,0-2V或0-4V

●    2个UART接口:一个用于串口加载代码。它们具有流控制,并支持IRDA!

●    25个PWM输出:25个通道PWM引脚用于调光LED或控制电动机。

●    2个DAC通道:8位DAC可产生真正的模拟电压。

●    3个SPI和1个I2C接口:有3个SPI和1个I2C接口,可连接各种传感器和外围设备。

●    9个触摸引脚:9个GPIO具有电容触摸感应。

得益于ESP32的引脚多路复用功能,这意味着单个GPIO引脚可以充当ADC输入/DAC输出/触摸引脚。

ESP32引脚分配

ESP32开发板总共有30个引脚将其连接到外界。为简单起见,具有相似功能的引脚分组在一起。引脚如下:

让我们更详细地分析ESP32引脚及其功能。

GPIO引脚

ESP32开发板有25个GPIO引脚,可以通过编程方式分配给各种功能。每个启用的GPIO都可以配置为内部上拉或下拉或设置为高阻抗。

仅输入GPIO引脚

GPIO34、GPIO35、GPIO36(VP)和GPIO39(VN)引脚无法配置为输出,它们可以用作数字输入、模拟输入或其他目的。另请注意,它们没有像其他GPIO引脚那样具有内部上拉或下拉电阻。

同样,GPIO36(VP)和GPIO39(VN)引脚也是ADC超低噪声前放大器的组成部分,这有助于配置Pre-Amp的采样时间和噪声。

ESP32中断引脚

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

ADC引脚

ESP32具有15个12位ADC输入通道。这些GPIO可用于将引脚上的模拟电压转换为数字数字。

ESP32上的ADC是12位ADC,这意味着它具有检测4096离散模拟电平的能力。换句话说,它将将输入电压映射到0和操作电压之间的3.3V之间,为0到4095之间的整数值。

您还可以在代码中设置通道的ADC分辨率和ADC范围。

DAC引脚

ESP32具有两个8位DAC通道,可用于将数字信号转换为真正的模拟电压。它可以用作控制模拟设备的数字电位计。

ESP32上的双DAC具有8位分辨率,这意味着0到256之间的值将产生一个模拟电压在0到3.3V之间。

触摸引脚

ESP32具有9个电容接触式GPIO。当电容载荷(例如人的手指)与GPIO紧邻时,ESP32检测到电容的变化。

通过将它们连接到任何导电物体,例如电线、螺纹、箔、布、导电涂料等。这些电容式触摸引脚也可以用来从深度睡眠中唤醒ESP32。

SPI引脚

SPI引脚ESP32具有三个SPI(SPI,HSPI和VSPI),支持从机和主机模式。这些SPI还支持以下通用SPI特征:

●    SPI格式转移的4个正时模式

●    最多80 MHz和80 MHz的分开时钟

●    最多64字节FIFO

仅VSPI和HSPI是可用的SPI接口,并且集成的闪存芯片使用第三个SPI总线。标准库通常在两者之间使用VSPI引脚。

I2C引脚

ESP32具有单个I2C总线,可让您连接多达112个传感器和外围设备。默认情况下,SDA和SCL引脚分配给以下引脚。但是,您可以在带有Wire.Begin(SDA,SCL)命令的任何GPIO引脚上键入I2C协议。

UART引脚

ESP32具有2个UART接口,即UART0和UART2,可提供异步通信(RS232和RS485)和IRDA支持,并以最高5Mbps进行通信。

●    UART0引脚连接到USB到串行转换器,用于闪烁和调试。因此,不建议使用UART0引脚。

●    另一方面,UART2是附加的串口1引脚,并且未连接到USB到串行转换器。这意味着您可以使用它们连接到诸如GPS、指纹传感器等的UART设备。

PWM引脚

开发板有25个由脉冲宽度调制(PWM)控制器控制的PWM引脚的通道(几乎所有GPIO引脚)。PWM输出可用于驱动数字电动机和LED。

控制器由PWM计时器和PWM操作员组成。每个计时器都以同步或独立的形式提供时间,并且每个PWM操作员为一个PWM通道生成波形。

RTC GPIO引脚

一些GPIO被引到RTC低功率子系统,它们称为RTC GPIO。这些是特殊的引脚,用于当超低功率(ULP)协作者运行时从深度睡眠中唤醒ESP32。以下GPIO可以用作外部唤醒源。

电源引脚

有两组电源引脚 - VIN引脚和3.3V引脚。如果您具有调节的5V电压源,则可以将VIN引脚用于直接提供ESP32及其外围设备。 3.3V引脚是板载电压调节器的输出。该引脚可用于为外部组件提供电源。 GND是ESP32开发板的地引脚。

EN引脚

EN引脚用于启用ESP32。上拉高电平时启用芯片。当拉低时,芯片以最小的功率工作。

更多推荐

【LeetCode题目详解】第十章 单调栈part03 84.柱状图中最大的矩形(day60补)

本文章代码以c++为例!一、力扣第84题:柱状图中最大的矩形题目:给定n个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为1。求在该柱状图中,能够勾勒出来的矩形的最大面积。示例1:输入:heights=[2,1,5,6,2,3]输出:10解释:最大的矩形为图中红色区域,面积为10示例2:输入:hei

前端自定义导出PPT

1、背景前端导出PPT,刚接触这个需求,还是比较懵逼,然后就在网上查找资料,最终确认是可行的;这个需求也是合理的,我们做了一个可视化数据报表,报表导出成PPT,将在线报表转成文档类型留存;2、技术方案实现这种复杂的功能,都得依赖前辈匠人,还好有一个比较完善好用的库:pptxgenjs只有英文文档:QuickStartG

代码大全阅读随笔(七)

循环控制循环控制会出现什么样的错误,任何一种答案都可以归结到下面所说的问题之一:忽略或者错误的对循环执行初始化,忽略了对累加变量或者其他与循环有关变量执行初始化,不正确的嵌套,不正确的循环终止,忽略或者错误的增加了循环变量的值,以及用不正确的循环下标访问数组元素等等。要点:循环很复杂。保持循环简单将有助于别人阅读你的代

Linux下的buff/cache

目录一、buff/cache二、buff/cache与内存管理三、buff/cache对系统性能的影响四、优化buff/cache1、调整vm.dirty_ratio和vm.dirty_background_ratio2、配置vm.swappiness3、配置vm.vfs_cache_pressure五、释放buff/

5G相关信息

5G(第五代移动通信技术)是一种高级的通信技术,包括了多种算法和协议,用于实现高速、低延迟、可靠的无线通信。要实现5G算法,需要深入了解各种子系统和协议的工作原理,并根据需要编写相应的代码。以下是一些与5G相关的核心算法和技术,以及简要的描述:1.**OFDM(OrthogonalFrequencyDivisionMu

【Python】Python 网络编程 ( Socket 套接字简介 | Socket 套接字使用步骤 | Socket 套接字服务端与客户端开发 )

文章目录一、Socket套接字简介1、Socket套接字概念2、Socket套接字类型3、Socket套接字使用步骤4、Socket套接字服务端与客户端二、Socket服务端与客户端开发1、服务端2、客户端3、执行结果一、Socket套接字简介1、Socket套接字概念Socket套接字是一种进程之间的通信机制,通过套

人工智能安全-2-非平衡数据处理(2)

5算法层面代价敏感:设置损失函数的权重,使得少数类判别错误的损失大于多数类判别错误的损失;单类分类器方法:仅对少数类进行训练,例如运用SVM算法;集成学习方法:即多个分类器,然后利用投票或者组合得到结果。6代价敏感算法6.1相关问题经典分类方法一般假设各个类别的错分代价是相同的,并且以全局错分率最低为优化目标。以入侵检

Observability:使用 OpenTelemetry 手动检测 Go 应用程序

作者:LucaWintergerstDevOps和SRE团队正在改变软件开发的流程。DevOps工程师专注于高效的软件应用程序和服务交付,而SRE团队是确保可靠性、可扩展性和性能的关键。这些团队必须依赖全栈可观察性解决方案,使他们能够管理和监控系统,并确保问题在影响业务之前得到解决。整个现代分布式应用程序堆栈的可观察性

SpringBoot接受请求参数

1.简单参数1.1原始方法说明:获取请求传来的name参数,age参数的值。//简单方式@RestControllerpublicclassRequestController{@GetMapping("/books")publicStringsimpleParam(HttpServletRequestrequest){

Java 基础学习总结(207)—— 具有革命性、未来性、开创新纪元的 JDK 21, 它来了

具有革命性、未来性、开创新纪元的JDK21按照官方的时间计划表,今天终于是要正式GA了:https://openjdk.org/projects/jdk/21/GA,就是我上面框起来的“GeneralAvailability”的缩写,直译成中文,虽然是“普通可用”的意思,但是在软件行业,它就代表正式版。如果对外发布一个

慢SQL治理经验总结

在过去两年的工作中,我们团队曾负责大淘宝技术的慢SQL治理工作,作为横向的数据安全治理平台,如何快速准确地发现部门内所有应用的慢SQL,并进行高效的推动治理,同时覆盖多个开发、生产环境,是一个很大的挑战。以下是一些经验分享,我们通过持续的慢SQL推动治理,有效降低了DB相关的线上问题,极大提高了系统稳定性。关于慢SQL

热文推荐