【esp32-pico】ST7735 0.96寸的tft,如何配置 Arduino 中的TFT_eSPI 库呢
配置TFT_eSPI库用于ST7735 0.96寸TFT屏幕
要配置TFT_eSPI库来驱动ST7735 0.96寸TFT屏幕,你需要按照以下步骤操作:
1. 安装TFT_eSPI库
首先确保你已经安装了TFT_eSPI库:
-
通过Arduino IDE的库管理器搜索并安装"TFT_eSPI"
-
或者从GitHub下载:https://github.com/Bodmer/TFT_eSPI
2. 配置库文件
找到TFT_eSPI库文件夹中的User_Setup.h文件(通常位于Arduino/libraries/TFT_eSPI目录下),并进行如下修改:
// 选择你的驱动芯片
#define ST7735_DRIVER
// 设置屏幕分辨率
#define TFT_WIDTH 80
#define TFT_HEIGHT 160
// 对于0.96寸ST7735屏幕通常使用以下设置
#define ST7735_GREENTAB160x80 // 对于160x80像素的屏幕
//修改偏移,如果边缘出现花屏需要修改这个位置,并且需要到对应的驱动里面修改偏移值,例如我这里修改的位置是在\TFT_Drivers\ST7735_Rotation.文件里面的case 0(0 1 2 3对应屏幕旋转0 90 180 270)下的INITR_GREENTAB128中的两个偏移值
// 设置引脚(根据你的实际连接修改)
#define TFT_CS 10 // 芯片选择引脚
#define TFT_DC 9 // 数据/命令选择引脚
#define TFT_RST 8 // 复位引脚(可接Arduino RESET或单独控制)
// 如果你使用硬件SPI(推荐)
#define TFT_SPI_PORT 1 // 使用SPI1,对于大多数Arduino是默认SPI
// 可选:如果使用软件SPI(不推荐,速度慢)
// #define TFT_MOSI 11
// #define TFT_SCLK 13
// #define TFT_CS 10
// #define TFT_DC 9
// #define TFT_RST 8
// #define TFT_MISO 12
// 字体设置(可选)
#define LOAD_GLCD // 默认字体
#define LOAD_FONT2 // 小号字体
#define LOAD_FONT4 // 中号字体
#define LOAD_FONT6 // 大号字体
#define LOAD_FONT7 // 7段显示字体
#define LOAD_FONT8 // 大号数字字体
#define LOAD_GFXFF // 平滑字体
// 其他设置
#define SPI_FREQUENCY 27000000 // 最大27MHz
#define SPI_READ_FREQUENCY 20000000
#define SPI_TOUCH_FREQUENCY 2500000
3. 连接硬件
典型的ST7735 0.96寸TFT引脚连接:
TFT引脚 -> Arduino引脚
----------------------
VCC -> 3.3V或5V(取决于模块)
GND -> GND
SCL/SCK -> 13 (SPI时钟)
SDA/MOSI-> 11 (SPI数据输入)
RES/RST -> 8 (或接Arduino RESET)
DC/RS -> 9
CS -> 10
BLK -> 3.3V或通过PWM控制背光
4. 测试代码
上传以下测试代码验证配置:
#include <TFT_eSPI.h>
TFT_eSPI tft = TFT_eSPI();
void setup() {
tft.init();
tft.setRotation(1); // 根据需要调整旋转方向(0-3)
tft.fillScreen(TFT_BLACK);
tft.setTextColor(TFT_WHITE, TFT_BLACK);
tft.drawString("Hello World!", 10, 10, 2);
}
void loop() {
// 测试颜色显示
tft.fillScreen(TFT_RED);
delay(500);
tft.fillScreen(TFT_GREEN);
delay(500);
tft.fillScreen(TFT_BLUE);
delay(500);
}
常见问题解决
-
屏幕显示不正常:
-
检查引脚连接是否正确
-
确认选择了正确的驱动芯片定义
-
尝试调整SPI频率(降低到20000000或更低)
-
-
颜色不正确:
-
尝试不同的初始化设置(如ST7735_GREENTAB160x80改为ST7735_BLACKTAB)
-
检查
setRotation()参数是否正确
-
-
屏幕方向不对:
-
调整
tft.setRotation(0-3)参数 -
可能需要修改
TFT_WIDTH和TFT_HEIGHT定义
-
如果你的0.96寸屏幕是80x160像素的常见型号,上述配置应该可以正常工作。如果屏幕规格不同,可能需要调整相关参数。
参考文章
1.
笔记ESP32-TFT-ESPI库ST7735芯片
https://www.bilibili.com/opus/961080373689712657
2.
使用TFT_eSPI驱动st7735 0.96' lcd遇到的一些问题
https://www.bilibili.com/opus/620311694092088611

浙公网安备 33010602011771号