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

78 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

|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 | - | ✅ |
| | | | | |