• ESP32-IPS彩屏ST7789-Arduino-简单驱动


    目的:

    使ESP32能够驱动点亮ST7789显示屏

    前提条件:

    ESP32

    ST7789 (240 x240,IPS)

    杜邦线

    Arduino

    过程:

    0x00--接线

    0x01--驱动:

    彩屏驱动库

    针对不同的彩屏驱动芯片,常用的 Arduino 彩屏驱动库也有很多种选择,在 Arduino IDE 的库管理器中,搜索“TFT”就可以看到许多彩屏驱动库,比如:

    Arduino-ST7789-Library:https://github.com/ananevilya/Arduino-ST7789-Library

    Adafruit-ST7735-Library:https://github.com/adafruit/Adafruit-ST7735-Library

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

    本教程使用的库是 TFT_eSPI,选择这个库的原因有:

    该库在 GitHub 上 Star 的人数比较多,而且至今还在保持活跃地更新,所以可靠性、专业型比较有保证;

    支持各种常用的驱动芯片,比如 ST7735、ST7789、ILI9341 等,兼容性比较好;

    据说这个库的性能也是最出色的。这里我没有详细考究与测试,而且对大部分用户来说也不重要。

    在 Arduino 中打开库管理器,搜索 TFT_eSPI,然后点击安装即可。

    0x02 -- 配置文件修改

    使用Everyting 搜索User_Setup.h,然后使用vscode打开。记事本也可以。

    简单点亮st7789 无需调用Arduino\libraries\TFT_eSPI\User_Setups这一目录下的Setup135_ST7789.h。

    主要修改内容:

    #define USER_SETUP_INFO "User_Setup"


    #define ST7789_DRIVER


     #define TFT_SDA_READ

     #define TFT_RGB_ORDER TFT_RGB

    #define TFT_WIDTH  240

    #define TFT_HEIGHT 240

    // For ESP32 Dev board (only tested with ST7789 display)

    // 节点定义

    #define TFT_MISO 19

    #define TFT_MOSI 23

    #define TFT_SCLK 18

    #define TFT_CS    15  // Chip select control pin

    #define TFT_DC    2  // Data Command control pin

    #define TFT_RST   4  // Reset pin (could connect to RST pin)

    #define TFT_BL   32


    //#不要的字体可以去掉,会占用空间

    #define LOAD_GLCD  

    #define LOAD_FONT2 

    #define LOAD_FONT4 

    #define LOAD_FONT6

    #define LOAD_FONT7 

    #define LOAD_FONT8 

    //#define LOAD_FONT8N

    #define LOAD_GFXFF

    #define SMOOTH_FONT


    #define SPI_FREQUENCY  27000000

    #define SPI_READ_FREQUENCY  20000000

    #define SPI_TOUCH_FREQUENCY  2500000
     

    // 其他暂不需要,可以备份源文件后,直接新建替换。

    验证:

    Arduino  菜单栏→文件→示例→TFT_eSPI

    选择 Colour_Test 例程编译上传之后就可以看到屏幕点亮了。恭喜你!

    其他:

    0x00:

    可能在测试的时候发现屏幕上某些颜色很奇怪,比如设置字体为蓝色但显示红色。原因是在ST7789芯片中MADCTL (36h)寄存器的第3位控制像素颜色顺序,当该位为0时颜色按R-G-B显示,当该位为1时按B-G-R显示:

    Bit D3- RGB/BGR Order

    “0” = RGB (When MADCTL D3=”0”)

    “1” = BGR (When MADCTL D3=”1”)

     出现这种问题时可以在User_Setup.h中取消掉下面某一行的注释,来控制颜色顺序

    #define TFT_RGB_ORDER TFT_BGR

    引用:

    ESP32 + Arduino使用TFT_eSPI库(LCD驱动芯片ST7789) - XXX已失联 - 博客园

    https://www.cnblogs.com/21207-iHome/p/16005438.html

    ESP32-CAM之ST7789图像显示_framesize_qqvga-CSDN博客

    ESP32-CAM之ST7789图像显示_framesize_qqvga-CSDN博客

    Connecting and Configuring the ST7789 LCD SPI Display to the ESP32 - YouTube

    https://www.youtube.com/watch?v=HoZhgNcJjNA

    干货:esp32彩屏自制太空人主题透明手表!_DLGG创客DIY的博客-CSDN博客
    https://blog.csdn.net/tiandiren111/article/details/115922976

  • 相关阅读:
    深入理解 slab cache 内存分配全链路实现
    python+vue+elementui舞蹈教学视频评分系统_o4o1y
    手机照片回收站无法恢复图片怎么办?2个措施,找回丢失的相册
    浅学 WebAssembly(实现视频实时滤镜效果)
    基于抽象语法树的神经网络模型(ASTNN)简介
    提升实景三维建模效率?这个问题不能忽视
    Java基础学习笔记-3
    【二分法查找】
    python+pytest接口自动化(1)-接口测试基础
    【现代密码学原理实验】——CrypTool2与OpenSSL的使用(学习笔记)
  • 原文地址:https://blog.csdn.net/sedbz/article/details/133873960