ESP32驱动ST7789液晶屏

让你的ESP32点亮一块ST7789液晶屏吧

hello-world

这块液晶屏尺寸是1.14寸,分辨率为135x240,驱动是ST7789
(不小心多买了一个并口版本,因为串口方式连接就能满足我的需求,所以并口屏幕吃灰预定了)

简单下介绍点亮这块屏幕的方法,介绍下如何配置参数并正确的显示内容。

下载驱动库

我使用的驱动库为TFT_eSPI

接线如下:

ESP32引脚名称 液晶屏引脚名称
3V3 VCC
GND GND
G15 SDA
G13 SCL
G23 DC
G18 RES
G5 CS
不接 BLK

编辑配置文件

Setup135_ST7789.h文件修改内容Setup135_ST7789.h
1
2
3
4
5
6
// 修改下面参数,和上面的接线对应上
#define TFT_SCLK 13
#define TFT_MOSI 15
#define TFT_RST 18
#define TFT_DC 23 // Data/command line for TFT on Shield
#define TFT_CS 5 // Chip select line for TFT display on Shield
User_Setup_Select.h文件修改内容User_Setup_Select.h
1
2
3
4
5
// ....
//#include <User_Setup.h> // 注释这个一行
// ....

#include <User_Setups/Setup135_ST7789.h>// 取消第79行注释

简单的示例

main.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#pragma GCC optimize("O3")

#include <Arduino.h>
#include <TFT_eSPI.h>
#include <Wire.h>

TFT_eSPI TFT = TFT_eSPI();
TFT_eSprite eSprite = TFT_eSprite(&TFT);
void setup() {
TFT.init();
TFT.setRotation(1);
TFT.fillScreen(TFT_BLACK);
TFT.initDMA();
eSprite.setTextFont(1);
eSprite.setTextColor(TFT_WHITE);
eSprite.createSprite(240, 135);
}

void loop() {
eSprite.setTextFont(1);
eSprite.setCursor(20, 20);
eSprite.println("Hello World\n");
eSprite.pushSprite(0, 0);
}

hello-world