NodeMCU-32S 开发板左右各19个引脚,共38个,下图中1Z实验室为大家对NodeMCU-32S的各个引脚进行了详细的标注。
NodeMCU-32S总共拥有2排引脚,各19个,共计38个。
负责供电和使能的基础引脚共有6个:
名称 | 功能 | 位置 |
---|---|---|
Vin | 用于开发板5V供电 | 上图左下角,褐色标签 |
3V3 | 3.3V电压输出 | 上图左上角,红色标签 |
GND | 共地 | 上图黑色标签,共三个 |
EN | 使能端,可触发复位操作 | 上图左上角第二个,黄色 |
GPIO是General-purpose input/output的缩写,意思为通用型输入或输出,ESP32上的GPIO共有32个。
规约
NodeMCU32-S开发板背面实际印刷的是P0 - P39,上图中的标注使用的是GPIO - GPIO39
接下来的教程中我们所说的 GPIO+编号 = NodeMCU-32S开发板背面印刷的 P+编号
上图是我们的助教小姐姐为大家PS的一张更为人性化的NodeMCU-32S的引脚标注图,笔者放在此处,方便你们后面的阅读。
NodeMCU-32S的GPIO引脚共32个, 编号范围从 P0 - P39 对应于上图中的GPIO0 - GPIO39,按照编号计算应该有40个GPIO引脚,实际上ESP32这块芯片确实有这么多个GPIO,但是由于开发板的封装 等原因,以下编号的引脚在ESP32的开发板中通常未被引出:
GPIO20 GPIO24 GPIO28 GPIO29
GPIO30 GPIO31 GPIO37 GPIO38
同时,你还需要注意的是,NodeMCU-32S上对以下几个GPIO 进行了特殊标注:
NodeMCU-32S的特殊标记 | 原GPIO编号 |
---|---|
CLK | GPIO6 |
SD0 | GPIO7 |
SD1 | GPIO8 |
SD2 | GPIO9 |
SD3 | GPIO10 |
CMD | GPIO11 |
SVP | GPIO36 |
SVN | GPIO39 |
几乎所有的GPIO都能进行I/O双向输入输出控制,但是以下的几个GPIO例外,只能进行输入,而无法进行输出:
GPIO34, GPIO35, GPIO36, GPIO39
功能简介 | 缩写 | 可用的GPIO编号 | 备注 |
---|---|---|---|
模拟信号采样 | ADC | 32, 33, 34, 35, 36, 39 | |
模拟信号输出 | DAC | 25, 26 | |
串行通信 | UART | 1(TX0),3(RX0), 10(TX1),9(RX1) ,17(TX2),16(RX2) | 共三组 |
探测由手指或其他物品直接接触或接近而产生的电容差异 | TOUCHPAD | 0, 2, 4, 12, 13, 14, 15, 27, 32, 33 | |
SPI总线接口 | SPI | hspi(14,12,13,15) vspi(23,19,18,5) | |
I2C总线接口 | I2C | SDA(21) SCL(22) | MicroPython并未实现硬件的I2C |
SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚。
ESP32的DAC函数可以实现真正的模拟输出。
ESP32 没有Arduino输出 PWM 的 analogWrite(pin, value) 方法,取而代之的 ESP32 有一个 LEDC 来实现PWM功能。
本文学习如何使用ESP32开发板来进行多线程的开发。
ESP8266有三种工作模式,分别为:AP,STA,AP混合STA
ESP32有四个SPI外设,分别为SPI0、SPI1、HSPI和VSPI。