参考:TFT-eSPI入门使用教程

Arduino开发-TFT_eSPI库学习

使用VS Code 搭建 platformio 平台

基于arduino的ESP32 学习笔记(二) TFT_eSPI和LVGL库使用笔记

https://b23.tv/VVhmXSp

硬件及软件环境

  • 开发板:ESP32-S3

  • 屏驱动是:ST7789_DRIVER

  • 开发环境:VS Code + PlatformIO

  • 搭建开发环境教程:使用VS Code 搭建 platformio 平台

    PIO创建新项目

    打开PIO.Home

    创建工程:

    项目名字自己定义,开发板(board)选择ESP32 Pico Kit(Espressif)使用的平台选Arduino

    取消使用默认路径

    选择自己的路径并点击finish,等待创建完成(可能很久)

    打开工程

    选择创建的工程即可

    成功打开

    主程序

    获取TFT-eSPI

    GitHub:https://github.com/Bodmer/TFT_eSPI

    解压压缩包

    在工程中添加TFT_eSPI库

    将解压的文件夹复制到工程的lib目录下

    修改文件夹名字

    vscode自动识别并添加到工程

    进入TFT_eSPI目录

    其中,User_Setup_Select.h和User_Setup.h两个文件是用来给我们根据自己的实际情况来配置屏幕大小,屏幕驱动引脚等的。其中User_Setup.h可以配置一款自己的屏幕设置,但库中有很多常用的屏幕作者已经配置好写成文件存放了,我们可以在User_Setup_Select.h中选中自己配置的User_Setup.h或者作者配置的一些屏幕。

    打开User_Setup_Select.h,注释掉30行

    打开60行,供esp32/esp8266/DSTIKE使用的,驱动为ST7789,大小为240*240的屏幕

    进入User_Setups目录,打开Setup24_ST7789.h

    屏幕像素大小,此处不需要改,如果使用的驱动相同,大小不同可以根据需要改

    解注释esp32的端口设置,如果使用DSTIKE,则使用上面的

    引脚号根据默认的即可,如果硬件连接已经成型,则根据实际改,否则硬件连接根据默认的连,避免出错

    注释NodeMCU单片机引脚定义

    设置SPI频率,设置频率时,不能超过引脚的最高频率

    如果使用的屏幕没有默认配置好的文件可选,或者不知道选哪个,则进入User_Setup_Select.h文件,解注释User_Setup.h,其他都保持被注释状态

    然后进入User_Setup.h文件进行配置

    注释ITI9341,并解注释自己的驱动

    选择分辨率大小

    ST7735漂移等问题需要设置这个,其他驱动不需要,可参考

    【超详细ESP32驱动TFT屏幕教程,有手就行-哔哩哔哩】

    https://b23.tv/VVhmXSp

    配置对应的驱动引脚

    到此,驱动库配置完成

    在main.cpp中添加程序

    实例程序

    LCD背光需要根据实际电路来设置,PMOS驱动的设置0为最亮,NMOS则1为最亮

    #include <Arduino.h>
    #include <TFT_eSPI.h>
     
    TFT_eSPI tft = TFT_eSPI();
     
    #define LCD_BL_PIN 5                                       // LCD背光引脚
    #define LCD_BL_PWM_CHANNEL 0                               // PWM通道,高速(0 ~ 7)80MHz时钟驱动,低速(8 ~ 15)1MHz
     
    void setup() {
        //设置背光
        ledcSetup(LCD_BL_PWM_CHANNEL, 1000, 8);                //设置通道,频率,分辨率
        ledcAttachPin(LCD_BL_PIN, LCD_BL_PWM_CHANNEL);         //设置引脚
        ledcWrite(LCD_BL_PWM_CHANNEL, (int)(0 * 255));         //设置亮度,PMOS驱动
        //初始化
        tft.init();
        tft.setRotation(1);                                    //设置屏幕方向,0 1 2 3表示顺时针旋转0 90 180 270 度
        tft.invertDisplay(1);                                  //颜色反转
    }
     
    void loop() {
        tft.fillScreen(TFT_BLACK);                             //屏幕全黑
      
        tft.setCursor(0, 0, 2);                                //将“光标”设置在显示器的左上角(0,0),并选择2号字体
        tft.setTextColor(TFT_WHITE,TFT_BLACK);                 //将字体颜色设置为白色,背景为黑色,将文本大小倍增设置为1
        tft.setTextSize(1);                                    //字体大小
        tft.println("Hello World!");
    
        while(1);
    }
    物联沃分享整理
    物联沃-IOTWORD物联网 » TFT_eSPI库的使用指南

    发表评论