esp32 基于 TFT 驱动微雪 2inch 屏幕

322 阅读2分钟

前段时间制作了一个 AI 语音机器人,为机器人配置了一块显示屏,网上找了好多资料,没有找到合适的,后来通过 google 搜索,最终解决问题,在此记录下,希望能帮助到其他人。

1、硬件

  • 微雪 2inch LCD 显示屏,st7789v 芯片
  • esp32 wroom 控制板
  • 开发工具用的 ardunio

2、ardunio 环境搭建

  • 安装 esp32 主板库
  • 安装 TFT_eSPI 库

3、编辑 TFT 文件

  • 打开 ardunio 在首选项里面,找到“项目文件夹地址“根据这个目录找到安装的 TFT 库文件,我这里显示/Users/gu/Documents/Arduino
  • 实际库地址是/Users/gu/Documents/Arduino/libraries 大家根据自己环境路径查找
  • 在 libraries 下面看到安装的 TFT 库,目录名字是TFT_eSPI
  • 编辑User_Setup.h、User_Setup_Select.h、User_Setups\Setup23_TTGO_TM.h 文件
#define USER_SETUP_INFO “User_Setup” 
#define ST7789_DRIVER 
#define TFT_WIDTH 240 
#define TFT_HEIGHT 320 
#define TFT_INVERSION_ON 
#define LOAD_GLCD 
#define LOAD_FONT2 
#define LOAD_FONT4 
#define LOAD_FONT6 
#define LOAD_FONT7 
#define LOAD_FONT8 
#define LOAD_GFXFF 
#define SMOOTH_FONT
#include <User_Setups/Setup23_TTGO_TM.h>
// Setup for the TTGO TM (Music) ESP32 board with 2.4" ST7789V display 
#define USER_SETUP_ID 23 // See SetupX_Template.h for all options available #define ST7789_DRIVER 
#define TFT_SDA_READ // Read from display, it only provides an SDA pin //#define TFT_MISO 19 // Must be defined even though it is not used 
#define TFT_MOSI 23 // Connected to display SDA line 
#define TFT_SCLK 18 
#define TFT_CS 05 
#define TFT_DC 16 
#define TFT_RST 17 
#define TFT_BL 4 
#define TOUCH_CS -1 
#define TFT_WIDTH 240 
#define TFT_HEIGHT 320 
#define TFT_RGB_ORDER TFT_RGB // Colour order Red-Green-Blue 
//#define TFT_RGB_ORDER TFT_BGR // Colour order Blue-Green-Red // Black and white swap option 
//#define TFT_INVERSION_ON 
#define TFT_INVERSION_OFF 
#define LOAD_GLCD 
#define LOAD_FONT2 
#define LOAD_FONT4 
#define LOAD_FONT6 
#define LOAD_FONT7 
#define LOAD_FONT8 
#define LOAD_GFXFF 
#define SMOOTH_FONT 
//#define SPI_FREQUENCY 40000000 // This display also seems to work reliably at 80MHz 
//#define SPI_FREQUENCY 80000000 
#define SPI_READ_FREQUENCY 6000000 // 6 MHz is the maximum SPI read speed f

打开 TFT测试程序

在 ardunio 文件->示例->TFT_eSPI 里面,找到 320*240,选择里面任意一个程序,进行编译烧录,就可以看到结果了