ESP32-S3-CAM:连接ST7789驱动的LCD显示屏
1、认识ST7789驱动的LCD
1)看图认识
我买到的是一块 ST7789 驱动的 1.54 英寸 IPS LCD 显示屏模块,分辨率240*240。
这个是焊接过针脚的模块。


2)引脚说明
| 引脚 | 名称 | 功能 | 接 ESP32-S3 |
|---|---|---|---|
| BLK | Backlight | 背光控制(PWM 调光) | GPIO + PWM 或 3.3V |
| CS | Chip Select | 片选信号(低电平有效) | GPIO |
| DC | Data/Command | 数据/命令选择 | GPIO |
| RES | Reset | 复位信号(低电平复位) | GPIO |
| SDA | Serial Data | SPI 数据输入(MOSI) | GPIO |
| SCL | Serial Clock | SPI 时钟 | GPIO |
| VCC | Power | 电源输入(3.3V) | 3.3V |
| GND | Ground | 地 | GND |
2、面包板连接ST7789屏幕
1)引脚分配说明
考虑把屏幕接到板子的右侧,引脚分配如下,从屏幕最下面的GND开始
| 引脚 | 名称 | 功能 | 接 ESP32-S3 |
|---|---|---|---|
| BLK | Backlight | 背光控制(PWM 调光) |
G35 |
| CS | Chip Select | 片选信号(低电平有效) | G45 |
| DC | Data/Command | 数据/命令选择 | G47 |
| RES | Reset | 复位信号(低电平复位) | G21 |
| SDA | Serial Data | SPI 数据输入(MOSI) | G20 |
| SCL | Serial Clock | SPI 时钟 | G19 |
| VCC | Power | 电源输入(3.3V) | 3.3V正极 |
| GND | Ground | 地 | GND 接地 |

GND引脚接地,需要把板子的GND引脚通过两条灰色短线连接到负极
VCC引脚接正极,先把板子上3V3引脚通过长的红色线连接到正极,然后在右侧用棕色线连接VCC引脚到正极这一横排。
SCL连接G19,SDA连接G20,RES连接G21,DC连接G47
G47旁边是G48,G48是用来控制 板载 RGB LED 灯的,为了不影响板载灯,跳过这个口
所以 CS连接G45,
G45旁边是G0,G0是 启动模式选择(Strapping 引脚)用的,不能占用
所以BLK可以接G35。
哪些口是板载要用的,可以问下AI 或者在我这篇博客里查询,我也是经常翻这个。
ESP32-S3-CAM:认识引脚 这个博客中 右侧引脚介绍部分的表格里就有提到,G48和G0的作用。
2)面包板接线

我把3V3接正极的线换了一根短点的橙色线,要不然飞着很难看,下图是完整接线完毕后的效果。

3)上电检查
接完线以后,插上USB,可以看看屏幕背光是不是亮的,下图中黄色框出的部分,亮的就代表屏幕供电没问题,也就是说屏幕下面接的两个 引脚,GND和VCC供电没问题,如果这个都没亮,就说明 电流 没通,要检查线路。

3、写代码点亮屏幕
1)用AI工具写demo代码
线接好上电正常后,写提示词,让AI写屏幕自检代码即可,要告诉AI,每个引脚对应的口是多少,然后实现什么功能,我的提示词如下:
我通过面包板将ESP32-S3-CAM主板上连接了一个ST7789驱动的LCD屏幕,分辨率240*240,引脚设置如下:SCL连接G19,SDA连接G20,RES连接G21,DC连接G47,CS连接G45,BLK接G35,写一段代码,实现在屏幕上显示白底,然后用黑色字体写hello world。
#include <Arduino.h>
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>
// ST7789 引脚定义(根据您的接线)
#define TFT_SCL 19 // SPI 时钟
#define TFT_SDA 20 // SPI 数据(MOSI)
#define TFT_RES 21 // 复位
#define TFT_DC 47 // 数据/命令选择
#define TFT_CS 45 // 片选
#define TFT_BLK 35 // 背光控制
// 创建 ST7789 对象(软件 SPI)
Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_SDA, TFT_SCL, TFT_RES);
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println("ST7789 初始化开始...");
// 初始化背光引脚
pinMode(TFT_BLK, OUTPUT);
digitalWrite(TFT_BLK, HIGH); // 开启背光
// 初始化屏幕(240x240 分辨率)
tft.init(240, 240);
// 设置屏幕方向(0-3,根据实际需要调整)
tft.setRotation(0);
// 填充白色背景
tft.fillScreen(ST77XX_WHITE);
// 设置文字颜色(黑色)和大小
tft.setTextColor(ST77XX_BLACK);
tft.setTextSize(3); // 字体大小 3(较大)
// 计算文字居中位置
const char* text = "Hello World";
int16_t x1, y1;
uint16_t w, h;
// 获取文字尺寸
tft.getTextBounds(text, 0, 0, &x1, &y1, &w, &h);
// 计算居中坐标
int x = (240 - w) / 2;
int y = (240 - h) / 2;
// 显示文字
tft.setCursor(x, y);
tft.println(text);
Serial.println("显示完成!");
}
void loop() {
// 无需重复刷新
delay(1000);
}
2)库依赖安装
在 Arduino IDE 中安装以下库:
-
Adafruit ST7735 and ST7789 Library
-
管理库 → 搜索 "Adafruit ST7789" → 安装
-
-
Adafruit GFX Library
-
会自动作为依赖安装
-
ST7789依赖库安装

3)运行效果

更多推荐
所有评论(0)