ESP32 SPI驱动1.44寸TFT彩屏(5)

本文详细介绍了如何使用ESP32开发板驱动1.44寸TFT-LCD模块,包括IO口初始化、模块初始化、字符与数字显示等步骤。同时,还提供了增加汉字显示的方法。

TFT-LCD 即薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid Crystal Display。 TFT-LCD 与无源 TN-LCD、STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提 高了图像质量,TFT-LCD 也被叫做真彩液晶显示器。
本实验,我们使用的是 1.44 寸的 TFTLCD 模块,该模块支持 65K 色显示,显示分辨率为 128×128, 接口为 SPI 4 线接口,TFTLCD 显示需要的相关设置步骤如下:
1)设置 ESP32 与 TFTLCD 模块相连接的 IO。
这一步,先将我们与 TFTLCD 模块相连的 IO 口进行初始化,以便驱动 LCD。

2)初始化 TFTLCD 模块。
使用 LCD 前,首先要复位 LCD,接着发送初始化序列,就是向 LCD 控制器写入一系列的设置值
(比如伽马校准),这些初始化序列一般 LCD 供应商会提供给客户,我们直接使用这些序列即可, 不需要深入研究。在初始化之后,LCD 才可以正常使用。

3)通过函数将字符和数字显示到 TFTLCD 模块上。
这一步的流程是:设置坐标 写 GRAM 指令 写 GRAM 来实现,但是这个步骤,只是一个点的处 理,我们要显示字符/数字,就必须要多次使用这个步骤,从而达到显示字符/数字的目的,所以需要 设计一个函数来实现数字/字符的显示,之后调用该函数,就可以实现数字/字符的显示了。
从图上我们可以看出,TFT 显示模块除了 SPI 接口后,对外还有背光接口,背光接口默认不控制的话,LCD 的背光是常亮状态,在硬件上,TFTLCD 模块与 ESP32 的 IO 口对应关系如下: RST:硬复位 OLED,连接 IO12。 DC:命令/数据标志(0,读写命令;1,读写数据),连接 IO13。 D0:串行时钟线,连接 IO14。
D1:串行数据线,连接 IO33。 LCD_BL(背光控制):背光常亮,不接 ESP32。
这些线的连接,ESP32 开发板的内部已经连接好了,我们只需要将 TFTLCD 模块插上去就好了。
使用PCtoLCD2002 完美版生成字库。
在这里插入图片描述
接着插入到的 font.h 里的数组“struct typFNT_GB162 hz16[]”里:在这里插入图片描述
到这里为止,我们就增加了 4 个 16*16 点阵汉字,增加其他的汉字方法相同,增加汉字之后,就可 以使用函数 Gui_DrawFont_GBK16()显示增加的汉字了。
通过 USB 线给开发板供电,可以看到显示效果
在这里插入图片描述
最后推荐一款开发套件,可以手淘扫码查看。
在这里插入图片描述

### ESP32-S3与1.44TFT显示屏的硬件连接 对于ESP32-S3和1.44TFT显示屏之间的SPI通信,具体的硬件连接方式如下: | ESP32-S3 Pin | TFT Display Pin | |--------------|-----------------| | VIN | VCC (3.3V) | | GND | GND | | GPIO 32 | SCK (CLK) | | GPIO 33 | MOSI | | GPIO 34 | MISO (如果需要双向传输) | | GPIO 35 | CS | | GPIO 36 | DC | | GPIO 37 | RST | | GPIO 38 | BLK (背光控制, 如果有) | 表中的GPIO编号可以根据实际需求调整,但需保持一致性和准确性[^1]。 ### 示例代码展示 下面提供一段基于Ucglib库用于驱动上述配置下的1.44TFT显示屏的基础示例代码。这段代码实现了屏幕的基本初始化以及简单的图形绘制功能。 ```cpp #include <Wire.h> #include "Ucglib.h" // 定义使用的引脚 #define UCGLIB_CS 35 // 片选信号 #define UCGLIB_DC 36 // 数据/命令选择信号 #define UCGLIB_RST 37 // 复位信号 // 创建ucg对象实例化 Ucglib_ST7735_18x128x160_SWSPI ucg(UCGLIB_CS, UCGLIB_DC, UCGLIB_RST); void setup(void){ // 初始化LCD并清除屏幕内容 ucg.begin(UCG_FONT_MODE_TRANSPARENT); // 设置背景颜色为白色,前景颜色为黑色 ucg.setColorIndex(0); } void loop(void){ // 绘制测试图案 // 清除屏幕 ucg.clearScreen(); // 屏幕中心位置打印文字 ucg.setFontMode(1); // 字体模式设为覆盖前一像素 ucg.setPrintPos(20, 90); ucg.print("Hello World!"); } ``` 此段代码适用于ESP32-S3平台,并假设已安装好必要的依赖库文件。注意,在使用之前应当确认所选用的具体型号是否与此处描述相符,并适当修改参数以适应实际情况。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bytechip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值