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 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_READ_FREQUENCY 20000000 #define SPI_TOUCH_FREQUENCY 2500000 // 其他暂不需要,可以备份源文件后,直接新建替换。 |
验证:
Arduino 菜单栏→文件→示例→TFT_eSPI

之后就可以看到屏幕点亮了。恭喜你!
其他:
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-IPS彩屏ST7789-Arduino-简单驱动
目的: 使ESP32能够驱动点亮ST7789显示屏 前提条件: ESP32 ST7789 (240 x240,IPS) 杜邦线 Arduino 过程: 0x00--接线 0x01--驱动: 彩屏驱动库 针对不同的彩屏驱动芯片,常用的 Arduino…...
高效工具类软件使用
高效工具类软件使用 目录概述需求: 设计思路实现思路分析1.Leanote2.Obsidian 的使用 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for…...
批处理文件(.bat)中,dir与tree命令的效果
目录 dir命令 用法 操作 效果 dir /? dir dir D:\111\111_3 dir D:\111 *.mp4 dir D:\111 /ad dir D:\111 /ar dir D:\111 /s dir D:\111\111_3 >1bat.txt dir D:\111 >>1bat.txt tree命令 用法 操作 效果 tree /? tree tree D:\111\111_3 tree…...
STM32 ---- 再次学习STM32F103C8T6/STM32F409IGT6
目录 一、环境搭建及介绍 关于STM32基础介绍 新建工程 外设案例 LED流水灯 蜂鸣器 上拉电阻和下拉电阻知识 电压比较器 c语言基础知识 类型、结构体、枚举 类型int8_t int16_t int32_t 宏替换 #define 和typedef用法 结构体两种填充方法 和 命名规则 枚举用法 常用…...
UE4 EQS环境查询 学习笔记
EQS环境查询对应Actor的范围 EQS环境查询查询对应的类 查询到即有一个蓝色的球在Actor上,里面有位置信息等等 在行为树运行EQS,按键(‘)可以看到Player的位置已经被标记 运行对应的EQS在这里放如EQS就可以了 Generated Point&…...
计算机算法分析与设计(11)---贪心算法(活动安排问题和背包问题)
文章目录 一、贪心算法概述二、活动安排问题2.1 问题概述2.2 代码编写 三、背包问题3.1 问题描述3.2 代码编写 一、贪心算法概述 1. 贪心算法的定义:贪心算法是指在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以…...
shell命令以及运行原理
Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。 而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解&a…...
MySQL进阶(再论JDBC)——JDBC编程思想的分析 JDBC的规范架构 JDBC相关的类分析
前言 SQL(Structured Query Language)是一种用于管理关系型数据库的标准化语言,它用于定义、操作和管理数据库中的数据。SQL是一种通用的语言,可以用于多种关系型数据库管理系统(RDBMS),如MySQ…...
rabbitMQ的知识点
RabbitMQ是一种消息队列软件,它实现了高度可靠的消息传递机制。RabbitMQ支持多种消息协议,包括AMQP、STOMP、MQTT等,比较灵活。以下是一些rabbitmq的知识点: 1. 消息队列:消息队列是一种分布式系统中广泛使用的通信模…...
EtherNet/IP 库卡机器人和EtherCAT倍福PLC总线协议连接案例
EtherNet/IP 是一种适合于工业环境和对时间要求比较苛刻的应用的网络。而远创智控YC-EIPM-ECT通讯网关,是一款自主研发的EtherNet/IP 从站功能的通讯网关。它不仅可以实现EtherNet/IP 和EtherCAT的无缝连接,还可以将EtherNet/IP 作为从站连接到EtherCAT总…...
微信小程序 uniapp+vue线上洗衣店业务管理系统演89iu2
本课题意在设计一种系统的、基于用户体验的线上洗衣服务模式,具有如下的研究意义: (1)为用户提供更简单、便捷的洗衣服务模式; (2)为智能柜的盈利模式提供了新的方向; (3)通过线上系统、智能柜与洗衣工厂结合的方式,为洗衣企业构建了一套节 省人力成本的…...
Maven项目,进行编译,使用idea的 编译功能,就是正常的,但是在终端中执行 mvn clean compile 报错
一、背景: Maven项目,进行编译,使用idea的 编译功能,就是正常的,但是在终端中执行 mvn clean compile 报错 报错信息: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin…...
mssql还原数据库失败
标题: Microsoft SQL Server Management Studio ------------------------------ 服务器 "192.168.31.132" 的 附加数据库 失败。 (Microsoft.SqlServer.Smo) 有关帮助信息,请单击: https://go.microsoft.com/fwlink?ProdNameMicrosoftSQLServer&…...
Linux多线程编程- 无名信号量
简介 无名信号量(在 POSIX 环境下通常指 sem_t 类型的信号量)是用于同步和互斥的原语,它允许线程和进程按照预期的顺序执行,并确保对共享资源的安全访问。无名信号量与命名信号量的主要区别在于它们的可见性和生命周期。无名信号…...
【网络协议】聊聊DHCP和PXE 工作原理
DHCP 动态主机配置协议 对于每个主机来说,只要连接了网络,那么就会配置一个IP地址,那么这个IP地址,如果是手动配置的话,对于公司内部的人员来说都要找IT进行配置,这个太浪费人力物力了,所以解决…...
发现国内优秀的团队协作软件,帮助提高工作效率
中国有许多优秀的团队协作软件,它们在企业和组织中发挥着重要作用。 以下是一些最受欢迎的团队协作软件: 1、钉钉(DingTalk): 这是一款由阿里巴巴推出的企业级协作工具,旨在帮助企业和组织实现高效沟通和协作。钉钉提…...
LeetCode 面试题 08.12. 八皇后
文章目录 一、题目二、C# 题解 一、题目 设计一种算法,打印 N 皇后在 N N 棋盘上的各种摆法,其中每个皇后都不同行、不同列,也不在对角线上。这里的“对角线”指的是所有的对角线,不只是平分整个棋盘的那两条对角线。 注意&#…...
Excel 的下拉列表
可以将 Sheet6 隐藏,就更好地隐藏了来源。...
基于Effect的组件设计 | 京东云技术团队
Effect的概念起源 从输入输出的角度理解Effect https://link.excalidraw.com/p/readonly/KXAy7d2DlnkM8X1yps6L 编程中的Effect起源于函数式编程中纯函数的概念 纯函数是指在相同的输入下,总是产生相同的输出,并且没有任何副作用(side effect)的函数。…...
541. 反转字符串 II
541. 反转字符串 II class Solution { public:void Reverse(string& s, int start, int end){end--;while (start < end){swap(s[start], s[end]);start;end--;}}string reverseStr(string s, int k){int len s.size();for (int i 0; i < len; i 2 * k){if (i …...
嵌入式调试进阶:JScope RTT模式移植与性能实测(对比HSS,速度提升千倍)
嵌入式调试革命:JScope RTT模式深度优化与高频数据采集实战 在电机控制、电源管理和高速信号处理等嵌入式应用场景中,开发人员经常需要实时监控关键变量的变化趋势。传统调试工具往往面临采样率低、数据延迟大等问题,而SEGGER JScope的RTT模式…...
NotebookLM笔记生产力跃迁(仅限前500名早鸟用户的动态模板库已开放)
更多请点击: https://intelliparadigm.com 第一章:NotebookLM笔记生产力跃迁(仅限前500名早鸟用户的动态模板库已开放) NotebookLM 正式引入基于语义理解的「上下文感知模板引擎」,早鸟用户可通过专属入口启用动态模板…...
小满nestjs(第二十五章 NestJS ORM实战:TypeORM连接MySQL与实体映射)
1. TypeORM连接MySQL的完整配置指南 第一次在NestJS项目中使用TypeORM连接MySQL时,我踩了不少坑。记得当时因为一个简单的端口配置错误,折腾了大半天才成功连接。现在回想起来,其实只要掌握几个关键配置项,整个过程可以非常顺畅。…...
照片元数据管理终极指南:3步告别繁琐手动操作
照片元数据管理终极指南:3步告别繁琐手动操作 【免费下载链接】ExifToolGui A GUI for ExifTool 项目地址: https://gitcode.com/gh_mirrors/ex/ExifToolGui 你是否曾因数百张照片的拍摄时间错误而头痛不已?是否在为大量图片添加版权信息时感到力…...
5个高效方法:如何用AKShare处理金融数据去重,避免重复数据干扰分析
5个高效方法:如何用AKShare处理金融数据去重,避免重复数据干扰分析 【免费下载链接】akshare AKShare is an elegant and simple financial data interface library for Python, built for human beings! 开源财经数据接口库 项目地址: https://gitcod…...
Ninja构建系统实战:手写BUILD.ninja为你的Python/Go小工具加速
Ninja构建系统实战:手写BUILD.ninja为你的Python/Go小工具加速 在快速迭代的现代开发中,构建流程的效率往往成为瓶颈。当你的Python脚本需要打包成可执行文件,Go模块需要交叉编译,同时还要处理资源文件复制、依赖下载等一系列任务…...
STM32H7网络通信避坑指南:CubeMX配置LWIP 2.1.2时,这几个DCache和ETH的坑你别踩
STM32H7网络通信深度优化:LWIP 2.1.2配置与Cache一致性实战解析 当你在CubeMX中勾选了ETH和LWIP组件,生成代码后却发现设备无法稳定响应ping请求,或者传输大文件时出现数据错乱——这很可能与STM32H7独特的Cache架构有关。本文将带你深入理解…...
ARM架构CNTHP_CTL_EL2寄存器详解与虚拟化应用
1. ARM架构中的CNTHP_CTL_EL2寄存器深度解析在ARMv8-A架构的虚拟化环境中,定时器管理是Hypervisor实现高效资源调度和时间隔离的关键组件。作为EL2特权级的物理定时器控制寄存器,CNTHP_CTL_EL2为虚拟化软件提供了精确的计时控制能力。本文将深入剖析该寄…...
新手小白必看!AI大模型自学路线图,从入门到精通_自学AI大模型学习路线推荐
自学AI大模型学习路线推荐 今天,我想和大家分享一条自学AI大模型的学习路线,希望能帮助新手小白们更好地进入这个领域。 1. 打好基础:数学与编程 数学基础 线性代数:理解矩阵、向量、特征值、特征向量等概念。推荐课程:…...
别再傻傻传文件了!用Java Base64把图片和PDF直接“塞”进HTML页面(附完整代码)
告别文件传输:Java Base64技术实现图片与PDF的HTML直嵌方案 在Web开发中,我们经常遇到需要将图片或PDF文档直接嵌入HTML页面的场景。传统做法通常需要先将文件上传到服务器,然后通过URL引用,这不仅增加了网络请求,还引…...
