juechafun/01-项目/2605-MicroPythonESP32S3/参数配置-ESP32S3-SPI引脚配置.md

3.8 KiB
Raw Permalink Blame History

ST7789 屏幕引脚 ESP32-S3 CAM 物理 GPIO 核心功能 备注(无冲突 / 安全)
SCL / SCK GPIO12 SPI 时钟 纯通用 IO无板载功能
SDA / MOSI GPIO11 SPI 数据 纯通用 IO无板载功能
CS GPIO10 片选 纯通用 IO无板载功能
DC / RS GPIO9 数据 / 命令 纯通用 IO无板载功能
RST GPIO13 复位 纯通用 IO无板载功能
BL GPIO14 背光控制 纯通用 IO无板载功能
VCC 3.3V 供电 严禁接 5V
GND GND 接地 必须共地

LCD_PIN_MOSI = 42 LCD_PIN_SCLK = 21 LCD_PIN_CS = 45 LCD_PIN_DC = 47 LCD_PIN_RST = 46 LCD_PIN_BL = 14

🚨 核心硬件问题分析(结合你的 ESP32-S3-CAM 引脚图)

根据你提供的开发板引脚图,我发现了3 个致命硬件问题,这直接导致屏幕无显示:


1. 「SPI 时钟 / 数据引脚与 USB 功能冲突」

你代码中使用的 GPIO19(SCLK)GPIO20(MOSI),在你的 ESP32-S3-CAM 板上是USB_D + 和 USB_D- 引脚(看放大的引脚图)。

  • 当你用 USB 线连接电脑供电 / 调试时,这两个引脚会被USB 控制器强制占用,无法作为 SPI 总线使用,导致 SPI 通信完全失败,屏幕无响应。
  • 即使不接 USB这两个引脚也有内部的 USB 电路,可能存在信号干扰,不适合做 SPI 高速信号。

2. 「背光引脚 GPIO38 与板载 SD 卡电路冲突」

你使用的 GPIO38(BL),在开发板上是SD 卡的 SD_CMD 引脚

  • 板载 SD 卡电路会给 GPIO38 加上拉 / 下拉电阻,你外接的背光信号会被干扰,导致背光无法正常点亮,屏幕一直黑屏。
  • 即使背光勉强点亮,也可能因为信号冲突导致屏幕工作不稳定。

3. 「引脚选择不符合 ESP32-S3 的 SPI 硬件映射」

ESP32-S3 的硬件 SPI 有固定的映射关系,你之前的代码用了 SPI(1),但 GPIO19/20 根本不是硬件 SPI 的引脚,导致 SPI 无法初始化,无法发送任何数据。


修正方案:更换无冲突的引脚

根据你的开发板引脚图,为你重新选择一套无任何板载功能冲突、适合 SPI 的引脚,并修改代码:

表格

功能 原引脚 新引脚 新引脚说明
SPI_SCLK GPIO19 GPIO12 CAM_Y2无板载功能通用 GPIO
SPI_MOSI GPIO20 GPIO11 CAM_Y3无板载功能通用 GPIO
SPI_CS GPIO45 GPIO10 CAM_Y4无板载功能通用 GPIO
DC/RS GPIO47 GPIO9 CAM_Y5无板载功能通用 GPIO
RST GPIO21 GPIO13 CAM_PCLK无板载功能通用 GPIO
BL 背光 GPIO38 GPIO14 CAM_HREF无板载功能通用 GPIO

📋 最终定型无冲突引脚表(永久保存)

表格

LCD 功能 ST7789 引脚 ESP32-S3 CAM 分配 GPIO 冲突检查 状态
SPI 时钟 SCK/SCL GPIO21 未被摄像头 / USB/SD 占用 安全
SPI 数据 MOSI/SDA GPIO42 未被摄像头 / USB/SD 占用 安全
片选 CS GPIO45 未被摄像头 / USB/SD 占用 安全
数据 / 命令 DC/RS GPIO47 未被摄像头 / USB/SD 占用 安全
复位 RST GPIO46 未被摄像头 / USB/SD 占用 安全
背光 BL GPIO14 未被摄像头 / USB/SD 占用 安全
供电 VCC 3.3V -
接地 GND GND -