当前位置: 首页 > news >正文

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.lryc.cn/news/195259.html

相关文章:

  • 高效工具类软件使用
  • 批处理文件(.bat)中,dir与tree命令的效果
  • STM32 ---- 再次学习STM32F103C8T6/STM32F409IGT6
  • UE4 EQS环境查询 学习笔记
  • 计算机算法分析与设计(11)---贪心算法(活动安排问题和背包问题)
  • shell命令以及运行原理
  • MySQL进阶(再论JDBC)——JDBC编程思想的分析 JDBC的规范架构 JDBC相关的类分析
  • rabbitMQ的知识点
  • ​EtherNet/IP 库卡机器人和EtherCAT倍福PLC总线协议连接案例​
  • 微信小程序 uniapp+vue线上洗衣店业务管理系统演89iu2
  • Maven项目,进行编译,使用idea的 编译功能,就是正常的,但是在终端中执行 mvn clean compile 报错
  • mssql还原数据库失败
  • Linux多线程编程- 无名信号量
  • 【网络协议】聊聊DHCP和PXE 工作原理
  • 发现国内优秀的团队协作软件,帮助提高工作效率
  • LeetCode 面试题 08.12. 八皇后
  • Excel 的下拉列表
  • 基于Effect的组件设计 | 京东云技术团队
  • 541. 反转字符串 II
  • 基本分段存储管理方式(分段,段表,地址转换以及与分页管理对比)
  • 哪个牌子的洗地机好用?2023洗地机推荐
  • 根据脑图谱获取感兴趣区域的mask
  • Android Framework通信:Handler
  • Redis的安装和配置
  • Java武侠文字游戏
  • 数字化时代下,汽车行业如何突破现有营销困境?
  • 19 | 如何搞清楚事务、连接池的关系?正确配置是怎样的
  • 备忘录模式-撤销功能的实现
  • C++入门(二)
  • 【软件设计师】面向对象类图的六种关系