越来越发现做什么硬件接入都要先初始化引脚,板子自带的SD卡槽,摄像头插座,还有些板载的LED灯之类的,其实都是默认会占用一些引脚,看来需要系统的学习一下。
刚开始发现淘宝卖家里头有张这样的图,是介绍各个引脚的。

丢给Kimi以后给了一堆的如下解读:
这是一张 ESP32-S3-CAM 开发板的引脚定义图。让我详细解释各个引脚的含义和功能:
图例说明(左侧颜色标签)
| 颜色 | 英文标签 | 中文含义 |
|---|---|---|
| 🔴 红色 | Power | 电源引脚 |
| ⚫ 黑色 | Ground | 接地引脚 |
| 🔵 蓝色 | Serial | 串口调试/编程引脚 |
| 🟢 绿色 | ADCX_CH | 模拟数字转换器通道 |
| 🟡 黄色 | RESET | 复位芯片 |
| 🟠 橙色 | GPIO | 通用输入输出引脚 |
| 🟣 紫色 | TOUCHX | 触摸传感器输入通道 |
| 🟤 棕色 | STRAPPING | Strapping 引脚(启动配置) |
| 🔵 浅蓝 | SD | 板载 SD 卡引脚 |
| 🟢 浅绿 | LED | 板载 LED 引脚 |
| 🩷 粉色 | WS2812 | 板载 WS2812 RGB LED 引脚 |
| 🟣 紫红 | PSRAM | 外扩内存芯片引脚 |
| 🟡 浅黄 | USB | USB 功能引脚 |
| 🟢 青绿 | CAMERA | 摄像头引脚 |
| 🔵 深蓝 | JTAG | 调试接口引脚 |
| ⚡ 波浪线 | PWM | 支持 PWM 功能的引脚 |
核心芯片信息
ESP32-S3-N16R8:
-
N16: 16MB Flash(闪存)
-
R8: 8MB PSRAM(外扩内存)
左侧引脚详细说明(从上到下)
| 引脚号 | GPIO | 功能标签 | 说明 |
|---|---|---|---|
| 1 | 3V3 | 电源 | 3.3V 电源输出 |
| 2 | RST | 复位 | 芯片复位引脚 |
| 3 | GPIO4 | CAM_SIOD / ADC1_CH3 | 摄像头 I2C 数据 / ADC1 通道3 |
| 4 | GPIO5 | CAM_SIOC / ADC1_CH4 | 摄像头 I2C 时钟 / ADC1 通道4 |
| 5 | GPIO6 | CAM_VSYNC / ADC1_CH5 | 摄像头垂直同步信号 / ADC1 通道5 |
| 6 | GPIO7 | CAM_HREF / ADC1_CH6 | 摄像头水平参考信号 / ADC1 通道6 |
| 7 | GPIO15 | CAM_XCLK / ADC2_CH4 | 摄像头外部时钟 / ADC2 通道4 |
| 8 | GPIO16 | CAM_Y9 / ADC2_CH5 | 摄像头数据线 Y9 / ADC2 通道5 |
| 9 | GPIO17 | CAM_Y8 / ADC2_CH6 | 摄像头数据线 Y8 / ADC2 通道6 |
| 10 | GPIO18 | CAM_Y7 / ADC2_CH7 | 摄像头数据线 Y7 / ADC2 通道7 |
| 11 | GPIO8 | CAM_Y6 / ADC1_CH7 | 摄像头数据线 Y6 / ADC1 通道7 |
| 12 | GPIO3 | JTAG_EN / ADC1_CH2 | JTAG 调试使能 / ADC1 通道2 |
| 13 | GPIO46 | LOG | 日志输出引脚 |
| 14 | GPIO9 | CAM_Y3 / ADC1_CH8 | 摄像头数据线 Y3 / ADC1 通道8 |
| 15 | GPIO10 | CAM_Y5 / ADC1_CH9 | 摄像头数据线 Y5 / ADC1 通道9 |
| 16 | GPIO11 | CAM_Y2 / ADC2_CH0 | 摄像头数据线 Y2 / ADC2 通道0 |
| 17 | GPIO12 | CAM_Y6 / ADC2_CH1 | 摄像头数据线 Y6 / ADC2 通道1 |
| 18 | GPIO13 | CAM_PCLK / ADC2_CH2 | 摄像头像素时钟 / ADC2 通道2 |
| 19 | GPIO14 | ADC2_CH3 | ADC2 通道3(通用 GPIO) |
| 20 | 5V | 电源 | 5V 电源输入 |
右侧引脚详细说明(从上到下)
| 引脚号 | GPIO | 功能标签 | 说明 |
|---|---|---|---|
| 21 | GPIO43 | U0TXD / LED_TX | 串口0发送 / LED 发送指示 |
| 22 | GPIO44 | U0RXD / LED_RX | 串口0接收 / LED 接收指示 |
| 23 | GPIO1 | ADC1_CH0 | ADC1 通道0(通用 GPIO) |
| 24 | GPIO2 | ADC1_CH1 / LED_ON | ADC1 通道1 / LED 控制 |
| 25 | GPIO42 | MTMS | JTAG 模式选择 |
| 26 | GPIO41 | MTDI | JTAG 数据输入 |
| 27 | GPIO40 | SD_DATA / MTDO | SD卡数据 / JTAG 数据输出 |
| 28 | GPIO39 | SD_CLK / MTCK | SD卡时钟 / JTAG 时钟 |
| 29 | GPIO38 | SD_CMD | SD卡命令 |
| 30 | GPIO37 | PSRAM | 外扩内存 |
| 31 | GPIO36 | PSRAM | 外扩内存 |
| 32 | GPIO35 | PSRAM | 外扩内存 |
| 33 | GPIO0 | Boot | 启动模式选择(Strapping 引脚) |
| 34 | GPIO45 | VSPI | 虚拟 SPI |
| 35 | GPIO48 | WS2812 | 板载 RGB LED |
| 36 | GPIO47 | - | 通用 GPIO |
| 37 | GPIO21 | - | 通用 GPIO |
| 38 | GPIO20 | USB_D- / ADC2_CH9 | USB 数据负 / ADC2 通道9 |
| 39 | GPIO19 | USB_D+ / ADC2_CH8 | USB 数据正 / ADC2 通道8 |
| 40 | GND | 接地 | 地线 |
关键功能区域
📷 摄像头接口(中间白色连接器)
-
24pin FPC 连接器
-
连接 OV2640 / OV3660 / OV5640 等摄像头模组
-
包含:8位数据线 + I2C控制 + 时钟 + 同步信号
💾 SD卡槽(板载)
-
使用 GPIO 38-40 专用引脚
-
与摄像头完全独立,无引脚冲突
🔌 USB 接口(底部)
-
左侧 USB: USB-to-UART 转串口(用于下载程序)
-
右侧 USB: 原生 USB OTG(用于 USB 设备模式)
🎨 WS2812 RGB LED
-
GPIO48 控制
-
可编程彩色 LED
重要提示
-
Strapping 引脚(GPIO0, 3, 45, 46):启动时电平决定芯片启动模式,使用时需谨慎
-
摄像头数据线顺序 :这是 AI-Thinker 标准(Y2-Y9 对应 GPIO 11,9,8,10,12,18,17,16)
-
SD卡优势:使用独立 GPIO(38-40),不与摄像头冲突,可同时使用
-
PSRAM:GPIO 37-35 用于连接 8MB 外扩内存,对摄像头高分辨率模式至关重要
这张图显示的是 AI-Thinker 兼容版本的 ESP32-S3-CAM,与之前讨论的您的板子引脚配置一致!
USB口有两个,也追问了下有什么区别。
两个USB插孔的作用对比

| 对比项 | USB-to-TTL | USB OTG |
|---|---|---|
| 本质 | 外接转换芯片 | ESP32 内置 USB 控制器 |
| 连接 | 通过 CH340 转接 | 直连 ESP32-S3 |
| 引脚 | GPIO43/44 (TX0/RX0) | GPIO19/20 (USB_D+/D-) |
| 协议 | UART (串口) | USB 2.0 |
| 速度 | 低速 (Mbps级) | 12 Mbps |
| 功能 | 只能串口通信 | 可模拟各种 USB 设备 |
| 用途 | 烧录、调试 | USB 功能扩展 |
| 识别 | 电脑显示为 COM 端口 | 电脑显示为 USB 设备 |
网上找了下乐鑫的官网,找到了些变成官方文档,先做个记录吧。
https://docs.espressif.com/projects/esp-idf/zh_CN/stable/esp32s3/index.html
https://www.espressif.com.cn/zh-hans/products/socs/esp32/resources?sort=asc&order=field_platform
专用引脚
下午碰到一个问题,折腾了好久,将LRC,BCLK DIN 三个针脚连到了 35 36 37 针脚,导致死活播放不出来任何声音。还到一些通用的针脚以后就好了,比如21,47,41口,问了AI,说是
GPIO 35、36、37 在 ESP32-S3 上属于 SPI IO(SPI 专用引脚),存在以下限制:
表格
| 引脚 | 功能 | 限制 |
|---|---|---|
| GPIO35 | SPICS(片选) | 上电时为 SPI 模式,可能冲突 |
| GPIO36 | SPICLK(时钟) | 上电时为 SPI 模式,可能冲突 |
| GPIO37 | SPIQ(数据) | 上电时为 SPI 模式,可能冲突 |
ESP32-S3 的 SPI 控制器(SPI2/SPI3)可能在上电时占用这些引脚,导致 I2S 无法正常使用。
ESP32-S3 引脚冲突速查表
| 引脚 | 功能 | 状态 | 说明 |
|---|---|---|---|
| GPIO35 | SPIIO6 / SPICS1 | ❌ 避开 | SPI2 专用,上电即占用 |
| GPIO36 | SPIIO7 / SPICLK | ❌ 避开 | SPI2 专用,上电即占用 |
| GPIO37 | SPIDQS / SPIQ | ❌ 避开 | SPI2 专用,上电即占用 |
| GPIO38 | FSPIWP / SD_CMD | ⚠️ 注意 | 与 SD 卡 CMD 冲突 |
| GPIO39 | FSPIHD / SD_D0 | ⚠️ 注意 | 与 SD 卡 D0 冲突 |
| GPIO40 | FSPIWP / SD_D1 | ⚠️ 注意 | 与 SD 卡 D1 冲突 |
| GPIO41 | FSPIHD / SD_D2 | ⚠️ 注意 | 与 SD 卡 D2 冲突 |
| GPIO42 | MTMS / SD_D3 | ⚠️ 注意 | 与 SD 卡 D3 冲突 |
| GPIO26 | SPICS1 / DAC2 | ⚠️ 注意 | SPI 备用 / 旧版 DAC |
| GPIO27 | SPIHD / DAC1 | ⚠️ 注意 | SPI 备用 / 旧版 DAC |
| GPIO0 | BOOT / STRAPPING | ⚠️ 注意 | 上电电平决定启动模式 |
| GPIO3 | STRAPPING | ⚠️ 注意 | 上电必须低电平 |
| GPIO45 | VDD_SPI | ⚠️ 注意 | 上电电平配置 |
| GPIO46 | STRAPPING | ❌ 避开 | 上电必须低电平,否则进下载模式 |
安全引脚推荐(I2S/通用)
| 类型 | 推荐引脚 |
|---|---|
| 首选 | GPIO8, GPIO17, GPIO18, GPIO5, GPIO6, GPIO7 |
| 次选 | GPIO15, GPIO16, GPIO4, GPIO2, GPIO1 |
| 可用 | GPIO9, GPIO10, GPIO11, GPIO12, GPIO13, GPIO14 |
| 高编号 | GPIO43, GPIO44, GPIO47, GPIO48(通常可用) |