ESP-TFT屏幕(1)点亮自己的TFT屏幕

本文详细指导如何在Arduino中使用esp32进行TFT屏幕配置,包括基础连接、TFT_espi库安装、引脚定义、驱动选择、分辨率设置以及带触摸功能的ILI9488屏幕配置,提供实例代码以帮助初学者入门。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初次上手TFT屏幕使用,由于屏幕分辨率、ic驱动、引脚对应等复杂配置工作,使得TFT屏幕入门不是那么容易,本文着重分享使用esp32在arduino中进行TFT配置。

一、arduino的esp32环境配置

此部分网络教程很多,在此不做赘述

二、TFT_espi库的配置

打开arduino,正确选择开发板和接口后,安装TFT_eSpi库

点击后等待即可,网络环境不好可以换源或者科学上网,这里不做介绍

安装完成后将光标放在TFT库上会显示库的安装路径(或者自己知道路径)。按照路径找到user_setup.h 修改引脚定义

1.引脚定义

找到定义引脚这里,按照屏幕连线引脚选择(按照自己的接线设置)

#define TFT_SCLK 13  //对应SCL
#define TFT_MOSI 12 // 对应SDA     In some display driver board, it might be written as 
                                   "SDA" and so on.
#define TFT_RST  14  // 对应RES    Reset pin (could connect to Arduino RESET pin)
#define TFT_DC   26  // 对应DC     Data Command control pin
#define TFT_CS   27  // 对应CS     Chip select control pin
#define TFT_BL   25  // 对应BL     LED back-light

2.设置驱动

在同一文件下 找到如图设置驱动的部分,根据自己的屏幕选择对应驱动(一般会印在板子上,可以找卖家问或者查看说明书)

配置方法:把自己需要用的那一行前面的“//”删去即可,然后保证其他选择都在注释状态(也就是前面有//)

3.显示模式、分辨率

仍是在同一文件中,找到对应区域配置即可,大多数情况依旧可以在板子上直接找到,找不到的问卖家

4.设定偏移修正

这一部分是为了解决屏幕会偏移的问题,可以根据后面的注释对应选择,没有对应的配置需要一个一个试(但大多时候不会出现偏移,默认即可)

5.设置坐标偏移量:有时显示内容很不幸的移出屏幕,一种可能是4.的偏移修正没有正确配置,其次要通过设置坐标偏移量来人为校正了,以st7735为例:打开

TFT_espi——TFT-drivers——st7735_rotation.h 设置横纵坐标偏移量

打开会看到case0、1、2、3,这是对应四个方向的显示,对每个方向的显示要做独立的调整。

比如case 0(竖向正向显示),包含很多个else if,这部分对应4.中的偏移修正,也就是说对每一种偏移修正选择都要人工设置偏移量,这在我们确定选择哪一个时十分轻松,因为只需要设置一种,但当我们不确定选用哪一种偏移修正时,一个个去试极为痛苦()

在我们要调整的if大括号里,colstart表示横向偏移,正值往右、上 rowstart对应纵向偏移(正值往右、上),一个单位代表一个像素点。大家仔细看自己的TFT屏幕可以看到他是一个个像素点组成的,这时移动几个像素点就十分考验眼力和耐心

三、测试总结

到这里我们的配置工作已经完成了,接下来就是运行程序看看是否正常显示,已经做一些精校工作。实例代码:

#include <TFT_eSPI.h>  // 引入 TFT_eSPI 库

TFT_eSPI tft;  // 创建 TFT_eSPI 对象

void setup() {
  tft.init();  // 初始化 TFT 屏幕
  tft.setRotation(0);           // 调整屏幕方向,根据需要选择合适的值(0、1、2、3)
  tft.fillScreen(TFT_BLACK);    // 设置屏幕背景颜色为黑色
  tft.setTextSize(1);           // 设置文本大小
  tft.setTextColor(TFT_WHITE);  // 设置文本颜色为白色
}

void loop() {
  tft.fillScreen(TFT_BLACK);  // 清空屏幕,将屏幕填充为黑色

  // 绘制不同图形

  // 绘制一个像素点,参数:x 坐标,y 坐标,颜色
  tft.drawPixel(5, 5, TFT_RED);

  // 绘制一条直线,参数:起点的 x 坐标,起点的 y 坐标,终点的 x 坐标,终点的 y 坐标,颜色
  tft.drawLine(10, 20, 60, 20, TFT_GREEN);

  // 第一行:矩形
  // 绘制一个矩形边框,参数:左上角的 x 坐标,左上角的 y 坐标,矩形的宽度,矩形的高度,颜色
  tft.drawRect(10, 40, 15, 10, TFT_BLUE);
  // 绘制一个矩形填充,参数:左上角的 x 坐标,左上角的 y 坐标,矩形的宽度,矩形的高度,颜色
  tft.fillRect(10, 40, 15, 10, TFT_YELLOW);

  // 第二行:圆形
  // 绘制一个圆形边框,参数:圆心的 x 坐标,圆心的 y 坐标,圆的半径,颜色
  tft.drawCircle(65, 35, 7, TFT_MAGENTA);
  // 绘制一个圆形填充,参数:圆心的 x 坐标,圆心的 y 坐标,圆的半径,颜色
  tft.fillCircle(85, 35, 7, TFT_CYAN);

  // 第三行:三角形
  // 绘制一个三角形边框,参数:三个顶点的 x 坐标,三个顶点的 y 坐标,颜色
  tft.drawTriangle(75, 80, 85, 70, 85, 80, TFT_ORANGE);
  // 绘制一个三角形填充,参数:三个顶点的 x 坐标,三个顶点的 y 坐标,颜色
  tft.fillTriangle(105, 80, 115, 70, 115, 80, TFT_PURPLE);

  // 第四行:圆角矩形
  // 绘制一个圆角矩形边框,参数:左上角的 x 坐标,左上角的 y 坐标,矩形的宽度,矩形的高度,圆角的半径,颜色
  tft.drawRoundRect(10, 75, 20, 20, 5, TFT_PINK);
  // 绘制一个圆角矩形填充,参数:左上角的 x 坐标,左上角的 y 坐标,矩形的宽度,矩形的高度,圆角的半径,颜色
  tft.fillRoundRect(35, 75, 20, 20, 5, TFT_BLUE);

  // 显示文本
  tft.setCursor(10, 10);            // 设置文本光标位置,参数:x 坐标,y 坐标
  tft.println("Hello, I am Eva!");  // 打印文本,参数:文本内容

  delay(2000);  // 等待2秒钟
}

技巧:可以先把绘图代码全部注释掉,只把屏幕填充为纯色(当然不是黑色)来检查是否显示完整或者偏移

tft.fillScreen(TFT_WHITE);  //白色

四、补充带触摸功能的屏幕配置(以ILI9488的3.5寸屏幕为例)

与基础款相比,多了LED、T_CLK、T_CS、T_DO、T_DIN、T_IRQ、MISO这几个引脚,接下来一一将其配置。

首先板子上标的LED其实是我们之前的TFT_BL(LED back-light),用于控制背光强度,这里将它与正极相连设置为全亮度即可。

其余的T_CLK其实是触摸功能的SCK,T_DIN对应SDI(MOSI),只需要将这两个引脚与对应接口连接即可,T_IRQ悬空即可,不用连接。

还剩下T_CS、T_DO引脚,这里对他们单独配置,定义MISO接到T_DO,TOUCH_CS接到T_CS,这里MISO不用接到屏幕的MISO(如果有的话)。

#define TFT_MISO 19
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS   15  
#define TFT_DC    2  
#define TFT_RST   4  
#define TOUCH_CS 21

第二步打开 \Arduino\libraries\TFT_eSPI\User_Setup_Select.h,找到并取消注释

#include <User_Setups/Setup21_ILI9488.h>           // Setup file for ESP32 and ILI9488 SPI bus TFT

打开\Arduino\libraries\TFT_eSPI\User_Setups\Setup21_ILI9488.h,进行同样的引脚定义

接下来在ardunio运行一下实例程序,完美运行!

恭喜你已经完成了TFT屏幕配置,点亮了自己的TFT屏幕,接下来也许会出关于TFT屏幕学习的更多教程,显示图片,GIF,时间……做一个电子相册、小时钟、桌面小电视什么的

为了解决如何将ST7565S液晶控制器与80x86系列MPU通过高速接口连接,并实现65x132点矩阵的静态显示控制这一问题,首先需要了解ST7565S控制器的基本功能和接口特性。ST7565S控制器具有一个8位的高速MPU接口,这意味着可以方便地与80x86系列MPU连接,实现数据和指令的高速传输。 参考资源链接:[ST7565S LCD控制器PDF:丰富的功能与接口介绍](https://wenku.csdn.net/doc/6401ac8ccce7214c316ec3f2?spm=1055.2569.3001.10343) 在连接方面,根据ST7565S的技术手册,首先需要正确配置MPU的控制引脚以符合ST7565S的要求,包括数据总线接口、控制信号线以及电源和地线。接下来,按照数据手册中的初始化流程,对控制器进行初始化设置,包括设置显示方向、偏移量等。 一旦初始化设置完成,就可以编写代码来控制显示内容。通过向ST7565S发送一系列命令和数据,可以实现字符、图形的静态显示。例如,编写程序来填充65x132点矩阵的显示数据RAM,然后通过发送显示控制命令来更新LCD屏上的内容。具体的代码示例可能包括以下步骤: 1. 初始化MPU接口和ST7565S控制器。 2. 发送设置命令以配置显示参数,如对比度、显示方向等。 3. 编写函数来填充显示数据RAM。 4. 通过发送显示控制命令来启动显示更新。 在这个过程中,确保正确地处理时序和数据完整性是关键。ST7565S控制器的数据手册会提供详细的命令集和编程指南,指导你如何进行这些操作。 对于这个问题的解决,强烈建议参考这份资源:《ST7565S LCD控制器PDF:丰富的功能与接口介绍》。这份资料不仅详细介绍了ST7565S的功能和特性,还包含实际应用的接口配置和编程细节,能够帮助你深入理解和正确实现与80x86系列MPU的连接以及静态显示控制。一旦掌握这些基础知识和技能,你就可以进一步探索ST7565S控制器的更多高级功能,如动态显示、节能模式等,为你的产品设计提供更多可能性。 参考资源链接:[ST7565S LCD控制器PDF:丰富的功能与接口介绍](https://wenku.csdn.net/doc/6401ac8ccce7214c316ec3f2?spm=1055.2569.3001.10343)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值