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

之后就可以看到屏幕点亮了。恭喜你!

其他:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/107609.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go实现CORS(跨域)

引言 很多时候,需要允许Web应用程序在不同域之间(跨域)实现共享资源。本文将简介跨域、CORS的概念,以及如何在Golang中如何实现CORS。 什么是跨域 如果两个 URL 的协议、端口(如果有指定的话)和主机都相…

Linux性能优化--实用工具:性能工具助手

8.0 概述 本章介绍一些在Linux系统上可用的实用程序,它们能够加强性能工具的有效性和可用性。实用工具本身不是性能工具,但是当它们与性能工具一起使用时,它们可以帮助完成如下功能:自动执行繁琐的任务、分析性能统计数据&#x…

资源受限MCU Flash空间占用优化

资源受限MCU Flash空间占用优化步骤: 避免重复功能,排查软件工程中,重复功能的代码片段,抽象出来,重新进行封装;减少内联函数inline,内联函数过大且过多的调用无疑会增加代码量,占用…

二叉树的三种遍历方式的本质

二叉树的定义就不在这里多说了,下面这个图就是一个简单的二叉树: 二叉树的三种遍历方式: 前序遍历:头左右,也就是先头后左再右:1245367 public static void prePrint(BinaryTreeNode root) {if (root ! n…

BIM轻量化引擎的国内外发展现状

随着BIM技术的不断发展,对BIM技术应用要求已不局限于模型及基于模型的应用,其在经历了方案展示、BIM建模及应用两个阶段后,逐步向基于BIM平台的信息化管理模式升级,“模型是基础,管理是核心”的理念成为BIM应用的主流方…

一些FreeRTOS系统的usb命令使用方法

在全志R128开发过程中总结一些RTOS系统的usb命令使用方法,以下命令在所有RTOS平台(MELIS/FREERTOS)都可以使用 通过menuconfig打开usb模块功能 RTOS通过usb命令集成了测试用例。通过如下命令即可显示支持的功能: //输入如下命令…

rsyslog实现将日志存储到mysql中

​ 前提:准备好msql server或mariadb server; ​ 1、安装rsyslog连接至mysql server的驱动模块; [13:24 rootcentos6.8~]# yum install -y rsyslog-mysql [13:24 rootcentos6.8~]# rpm -ql rsyslog-mysql /lib64/rsyslog/ommysql.so /usr/…

6.strchr函数和strrchr函数

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h>/*char *strchr(char const *str, int ch);strchr在字符串中str中查找字符ch第1次出现的位置&#xff0c;找到后函数返回一个指向该位置的指针&#xff1b;如果该字符并不存在于字符串中&a…

EFLK与logstash过滤

目录 一、Filebeat工作原理&#xff1a; 二、为什么要使用Filebeat&#xff1a; 三、Filebeat和Logstash的区别&#xff1a; 四、logstash 的过滤插件&#xff1a; 五、FilebeatELK 部署&#xff1a; 1. 安装filebeat&#xff1a; 2. 设置 filebeat 的主配置文件&#xff1…

RIAC-V架构开发——ecall函数调用分析

1、sbi_ecall函数功能 &#xff08;1&#xff09;sbi_ecall函数是内核调用SBI的接口&#xff0c;在RISC-V架构中定义了SBI规范&#xff0c;内核通过ecall指令来调用SBI接口进而操作硬件&#xff1b; &#xff08;2&#xff09;SBI规范参考官网文档《riscv-sbi.pdf》&#xff1b…

qt_vs_tools 设置

1. 设置qt->general->最后面的QT/MSBUILD 该路径在QT/MSBUILD的本机路径 &#xff08;%LOCALAPPDATA%\QtMsBuild&#xff09; C:\Users\pc\AppData\Local\QtMsBuild 设置后需重启vs才能生效 2. 环境变量设置 path中需添加qt安装路径 E:\ProgramFiles\Qt\6.5.1\msvc201…

Spring Boot Bean 注入的常用方式教程

Spring Boot Bean 注入是一种将依赖对象引入到应用程序组件中的机制&#xff0c;它有助于实现松耦合和可测试的代码。这种注入方式允许我们将依赖关系委托给 Spring 容器来管理&#xff0c;从而提高了代码的可维护性和可读性。Spring Boot 提供了多种 Bean 注入方式&#xff0c…

GPT实战系列-ChatGLM2部署Ubuntu+Cuda11+显存24G实战方案

GPT实战系列-ChatGLM2部署UbuntuCuda11显存24G实战方案 自从chatGPT掀起的AI大模型热潮以来&#xff0c;国内大模型研究和开源活动&#xff0c;进展也如火如荼。模型越来越大&#xff0c;如何在小显存部署和使用大模型&#xff1f; 本实战专栏将评估一系列的开源模型&#xf…

CICD:Circle CI 实现CICD

持续集成解决什么问题 提高软件质量效率迭代便捷部署快速交付、便于管理 持续集成&#xff08;CI&#xff09; 集成&#xff0c;就是一些孤立的事物或元素通过某种方式集中在一起&#xff0c;产生联系&#xff0c;从而构建一个有机整体的过程。 持续&#xff0c;就是指长期…

element ui el-table表格复选框,弹框关闭取消打勾选择

//弹框表格复选框清空 this.$nextTick(()>{this.$refs.table.clearSelection();})<el-table ref"table" v-loading"crud.loading" :header-cell-style"{ color: #FFF, background: #333 }":cell-style"{ color: #FFF, background: #3…

Java基础--阳光总在风雨后,请相信彩虹

1、今日任务 JAVA SE-韩顺平视频教程–30p以上&#xff08;今天得50p以上因为是基础&#xff09;计算机基础八股记忆总结刷题&#xff08;两题&#xff09;可以先用python 1、SSM ssm->Spring&#xff08;轻量级的文本开发框架&#xff09;/SpringMVC&#xff08;分层的w…

前端面试题个人笔记(后面继续更新完善)

文章目录 填空题部分简答题部分 if有好答案请各位大佬们在底下评论上&#xff0c;感谢 填空题部分 1、常见的css选择器 2、getElementById获取元素的&#xff08;DOM&#xff09;对象 简答题部分 1、介绍一下你对RESTful API的理解以及它的优势&#xff1f; 答&#xff1a; …

Android自定义AppGlideModule,DataFetcher ,ModelLoaderFactory,ModelLoader,Kotlin(1)

Android自定义AppGlideModule,DataFetcher ,ModelLoaderFactory,ModelLoader,Kotlin(1) 假设实现一个简单的功能&#xff0c;对传入要加载的path路径增加一定的筛选、容错或“重定向”&#xff0c;需要自定义一个模型&#xff0c;基于这个模型&#xff0c;让Glide自动匹配模型…

探索RPA流程自动化在不同行业的应用案例

随着数字化的推进&#xff0c;企业建设了大量的业务系统&#xff0c;跨系统的业务流程越发复杂&#xff0c;业务孤岛、 流程孤岛、数据孤岛也随之出现&#xff0c;产生了大量需要人工执行的重复性系统操作流程。而使用RPA能将员工从大量的、重复的、高耗时的工作中解放出来&…

【【萌新的SOC学习之AXI DMA环路测试介绍】】

萌新的SOC学习之AXI DMA环路测试介绍 AXI DMA环路测试 DMA(Direct Memory Access&#xff0c;直接存储器访问)是计算机科学中的一种内存访问技术。它允许某些计算机内部的硬件子系统可以独立地直接读写系统内存&#xff0c;而不需中央处理器&#xff08;CPU&#xff09;介入处…