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

2023-10-25 10:40

本文主要是介绍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

这篇关于ESP32-IPS彩屏ST7789-Arduino-简单驱动的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/282018

相关文章

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

C/C++ chrono简单使用场景示例详解

《C/C++chrono简单使用场景示例详解》:本文主要介绍C/C++chrono简单使用场景示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录chrono使用场景举例1 输出格式化字符串chrono使用场景China编程举例1 输出格式化字符串示

windows和Linux安装Jmeter与简单使用方式

《windows和Linux安装Jmeter与简单使用方式》:本文主要介绍windows和Linux安装Jmeter与简单使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows和linux安装Jmeter与简单使用一、下载安装包二、JDK安装1.windows设

如何在Ubuntu上安装NVIDIA显卡驱动? Ubuntu安装英伟达显卡驱动教程

《如何在Ubuntu上安装NVIDIA显卡驱动?Ubuntu安装英伟达显卡驱动教程》Windows系统不同,Linux系统通常不会自动安装专有显卡驱动,今天我们就来看看Ubuntu系统安装英伟达显卡... 对于使用NVIDIA显卡的Ubuntu用户来说,正确安装显卡驱动是获得最佳图形性能的关键。与Windo

嵌入式Linux之使用设备树驱动GPIO的实现方式

《嵌入式Linux之使用设备树驱动GPIO的实现方式》:本文主要介绍嵌入式Linux之使用设备树驱动GPIO的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、设备树配置1.1 添加 pinctrl 节点1.2 添加 LED 设备节点二、编写驱动程序2.1

嵌入式Linux驱动中的异步通知机制详解

《嵌入式Linux驱动中的异步通知机制详解》:本文主要介绍嵌入式Linux驱动中的异步通知机制,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、异步通知的核心概念1. 什么是异步通知2. 异步通知的关键组件二、异步通知的实现原理三、代码示例分析1. 设备结构

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则