【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库:

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);
}

常见问题解决

  1. 屏幕显示不正常

    • 检查引脚连接是否正确

    • 确认选择了正确的驱动芯片定义

    • 尝试调整SPI频率(降低到20000000或更低)

  2. 颜色不正确

    • 尝试不同的初始化设置(如ST7735_GREENTAB160x80改为ST7735_BLACKTAB)

    • 检查setRotation()参数是否正确

  3. 屏幕方向不对

    • 调整tft.setRotation(0-3)参数

    • 可能需要修改TFT_WIDTHTFT_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

 

posted @ 2025-04-25 09:46  FBshark  阅读(667)  评论(0)    收藏  举报