使用ESP32驱动ST7789,效果很好的IPS显示屏

前言

在平台上面购买了这一种模块,然后这种模块是IPS液晶屏,显示效果会比早期那种好一些。显示屏的控制芯片是ST7789

我准备使用ESP32进行驱动,测试上使用简单的Arduino IDE,那么具体要怎么样让这一屏幕正常的显示?

应用库与具体配置

如果是使用avr的MCU例如Arduino UNO一类可以使用这一个库,GitHub - cbm80amiga/Arduino_ST7789_Fast: Fast SPI library for the ST7789 IPS display

那么这里的话我用的是GitHub - Bodmer/TFT_eSPI: Arduino and PlatformIO IDE compatible TFT library optimised for the Raspberry Pi Pico (RP2040), STM32, ESP8266 and ESP32 that supports different driver chips 这一个,TFT_eSPI对几乎所有的常见控制器都进行了支持,所以可以很容易的驱动屏幕,但是必须进行配置

先看一下我的ESP32与这一个屏幕的连接

#01 GND -> GND

 #02 VCC -> VCC (3.3V)

 #03 SCL -> IO18/SCK  

 #04 SDA -> IO23/MOSI

 #05 RES -> IO4

 #06 DC  -> IO2

 #07 BLK -> 不连

打开TFT_eSPI库文件夹,需要对三个文件进行配置才能正常的使用

1.配置C:\Users\你的用户名\Documents\Arduino\libraries\TFT_eSPI\User_Setups这一目录下的Setup135_ST7789.h

将此处更改为引脚,主要注意的是TFT_DC和TFT_RST可以任意支持输入输出的引脚而MOSI和SCLK不行。这里更改的是自定义引脚的头文件。

这是由ESP32的硬件限定的SPI接口。

2.返回到C:\Users\你的用户名\Documents\Arduino\libraries\TFT_eSPI,更改User_Setup.h这一个文件

主要修改屏幕的分辨率,将原本的注释掉改成如图所示

3.刚刚我们自行定义了一个屏幕引脚和速率的配置文件,需要在C:\Users\你的用户名\Documents\Arduino\libraries\TFT_eSPI文件夹下面的文件User_Setup.h中注释掉默认的头文件

//#include <User_Setup.h> 

然后,更替为Setup135_ST7789.h这一个文件,具体就是删掉注释符号,因为下方都有写了

然后正常的编译,就可以实现显示,这里我使用别人的代码作为测试代码,感谢他们的分享

/*

 *[Arduino UNO or others]

 #01 GND -> GND

 #02 VCC -> VCC (3.3V only!)

 #03 SCL -> D13/SCK  

 #04 SDA -> D11/MOSI

 #05 RES -> D8 or any digital

 #06 DC  -> D7 or any digital

 #07 BLK -> NC

*/


/*

 * [ESP32]


 #01 GND -> GND

 #02 VCC -> VCC (3.3V only!)

 #03 SCL -> IO18/SCK  

 #04 SDA -> IO23/MOSI

 #05 RES -> IO4

 #06 DC  -> IO2

 #07 BLK -> NC

*/




#pragma GCC optimize("O3")


#include <Arduino.h>

#include <TFT_eSPI.h>

#include <Wire.h>


TFT_eSPI TFT = TFT_eSPI();

TFT_eSprite eSprite = TFT_eSprite(&TFT);

void setup() {

    TFT.init();

    TFT.setRotation(1);

    TFT.fillScreen(TFT_BLUE);

    TFT.initDMA();

    eSprite.setTextFont(1);

    eSprite.setTextColor(TFT_WHITE);

    eSprite.createSprite(240, 240);

}


void loop() {

    eSprite.setTextFont(1);

    eSprite.setCursor(20, 20);

    eSprite.println("Hello World\n");

   

    eSprite.setCursor(40, 40);

    eSprite.println("Hello World\n");

    eSprite.pushSprite(0, 0);


    delay(1000);

}

最终的效果

下一篇说明TFT_eSPI如何使用

文章参考

ESP32驱动ST7789液晶屏

ESP32驱动ST7789液晶屏 - 简书

Connecting and Configuring the ST7789 LCD SPI Display to the ESP32

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

ESP32彩屏显示入门

ESP32彩屏显示入门:我要五彩斑斓的黑 | ESP32学习之旅-Arduino版 - 知乎

要在ESP32上配置和驱动ST7789 LCD SPI显示屏,您可以按照以下步骤进行操作: 1. 首先,确保您已经安装了ESP-IDF开发框架。您可以通过克隆esp-idf-st7789存储库来获取与ST7789显示屏兼容的ESP32驱动程序。 2. 在项目文件夹中使用idf.py设置目标为ESP32: ``` idf.py set-target esp32 ``` 3. 使用idf.py菜单配置工具来配置ESP32的GPIO引脚和显示屏的参数。您可以在菜单中选择SPI主机和SPI设备。确保为ST7789设置正确的引脚和参数。 4. 编译和烧录固件到ESP32上。您可以使用idf.py工具来进行编译和烧录操作。 ``` idf.py flash ``` 5. 完成烧录后,您可以使用Arduino IDE或其他编程环境来编写代码并与ST7789显示屏进行通信。在代码中,您需要初始化SPI总线和配置ST7789的寄存器以正确控制显示。您可以使用提供的驱动程序和示例代码作为参考。 通过按照以上步骤进行配置和编程,您应该能够在ESP32上成功驱动和显示ST7789 LCD SPI显示屏。祝您好运!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [使用ESP32驱动ST7789效果很好的IPS显示屏](https://blog.csdn.net/u012388993/article/details/120605961)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [esp-idf-st7789:ST7789 esp-idf的驱动](https://download.csdn.net/download/weixin_42113754/16179775)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值