ESP32驱动TFT显示屏(配置-自定义字库)


一、准备工作

(一)硬件设备

  1. ESP32开发板(本文所使用的是嘉立创的ESP32S3R8N8)
    在这里插入图片描述

  2. 1.8寸TFT显示屏(型号:ST7735S)
    在这里插入图片描述

(二)软件环境

  1. 编译软件:Arduino IDE 2.3.2

  2. ESP32开发板包:esp32 2.0.14

  3. TFT显示驱动:TFT_eSPI 2.5.43

  4. processing软件 用于生成字库

注意:

  • ESP32开发板包的版本不能高于2.0.14,否则烧录后,显示屏无法正常工作(白屏)

二、硬件连接

在这里插入图片描述


三、软件设置

  1. 在Arduino IDE中安装ESP32开发板包和TFT_eSPI库后,打开Arduino的项目文件夹目录(可在IDE的文件->首选项中查看),然后打开libraries/TFT_eSPI/User_Setup.h

在这里插入图片描述

  1. 定义驱动,打开User_Setup.h后,找到 “// Only define one driver, the other ones must be commented out” 这一行,将原来的define注释掉,并且取消注释 #define ST7735_DRIVER

在这里插入图片描述

  1. 定义颜色顺序,找到 #define TFT_RGB_ORDER TFT_RGB 取消掉注释(在76行)

在这里插入图片描述

  1. 设置显示屏的长宽像素,我的是1.8寸,也就是128x160,找到下面的83行开始,分别找到 “#define TFT_WIDTH 128” 和 " #define TFT_HEIGHT 160" 取消注释

在这里插入图片描述

  1. 引脚定义,找到170行开始,将默认的引脚定义注释掉,然后找到223行取消掉注释,并且将引脚号修改成我们前面设置的引脚号

在这里插入图片描述

在这里插入图片描述

  1. 测试例程,打开IDE,点左上角的文件->示例->TFT eSPI->160*128->TFT Clock 例程,设置好串口和板子之后,点击上传,能够正常显示,就说明配置成功了。

在这里插入图片描述

测试成功则如下:

在这里插入图片描述

  1. 注意:
  • 如果在编译的时候,出现下面这些警告是因为我们没用定义TOUCH_CS引脚,并不会影响我们操作TFT屏,可以忽略。
  • 如果觉得不舒服,可以在User_Setup.h文件中找到230行,也就是定义引脚的后面,将 #define TOUCH_CS 取消注释,然后设置一个不会影响操作的引脚就可以了。

在这里插入图片描述

在这里插入图片描述


四、自定义字库显示

(一)生成Unicode代码

确定好需要生成的汉字后,打开Unicode编码转换,将需要自定义的文字(符号也可以)粘贴,然后点击 “中文 转 Unicode” 就可以得到转换后的Unicode编码

在这里插入图片描述

然后将得到的Unicode编码改写成0x开头的数据备用

在这里插入图片描述

(二)生成字库

  1. 安装好processing后,再次打开TFT_eSPI库的目录,然后打开到Tools\Create_Smooth_Font\Create_font 目录下
  • data文件夹是用来存放字体的
  • FontFiles文件夹是用来存放生成的字库的
  • Create_font.pde是官方自带的生成字

在这里插入图片描述

  1. 打开 C:\Windows\Fonts 找到自己适合的字体,然后复制粘贴进data文件夹里面,这里我选择的是新宋体(simsun)

在这里插入图片描述

  1. 打开Create_font.pde,在130行的字体名称改成刚刚放进data文件夹里面的字体名称,然后在132行,根据字体文件的后缀修改成对应的后缀就行了。我所用到的字体名字叫做simsun,后缀是.ttc

在这里插入图片描述

  1. 在137行设置所生成的字体的大小,这里我选择的是24

在这里插入图片描述

  1. 在330行找到specificUnicodes数组,将里面的内容清空,然后把前面转换并且改好格式的Unicode编码粘贴进来

在这里插入图片描述

  1. 然后点击运行,就可以在FontFiles文件夹里面看到生成的字库了(运行后会有一个预览窗口,直接关闭就可以了)

在这里插入图片描述

(三)使用字库

  1. 打开Arduino IDE,新建一个项目并且保存,然后打开项目根目录,将前面所生成的.h文件放到根目录里面

在这里插入图片描述

  1. 进入IDE就会发现多了一个.h文件出来,我们点进去,就可以看到字库的名字了,我这里是 “simsun24”

在这里插入图片描述

  1. 在项目文件里面写入以下代码,然后编译运行就可以了。
#include <TFT_eSPI.h>
#include <SPI.h>
#include "simsun24.h"  // 引入字库

TFT_eSPI tft = TFT_eSPI();  // 创建tft显示对象

void setup() {
  tft.init();                   // 初始化对象
  tft.setRotation(1);           // 设置为横屏
  tft.setTextColor(TFT_WHITE);  // 设置字体颜色为白色
  tft.fillScreen(TFT_BLACK);    // 设置字体背景颜色为黑色
  tft.loadFont(simsun24);       // 设置所使用的字库为simsun24
}

void loop() {
  tft.setCursor(0, 5);                          // 设置显示位置
  tft.println("你好,一起学习自定义中文字库");  // 在屏幕上打印内容
  while (1) {}                                  // 防止屏幕一直刷新
}

最后效果如下:
在这里插入图片描述


五、总结

原文
如果要使用TFT_eSPI库驱动别的显示器,得去官方去查询是否支持所使用的开发板或者显示器,如果支持就可以通过修改User_Setup.h里面的配置文件来使用。更多例程或者介绍请自行查阅官方资料。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

YdaMooc

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

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

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

打赏作者

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

抵扣说明:

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

余额充值