ESP32搭建TFT_LCD中文字库,附常用字库

科技   2025-01-01 09:06   广东  
大疆无人机、福禄克万用表、小米手机、华为手表等你来!

👆面包板社区DIY活动进行中!


(一)简介

在使用ESP32的时候,我们知道OLED屏幕是有中文库的,里面有非常多的常用字,但是LCD屏幕只有取模才能得到中文字体,那我们本期教程就来教大家如何搭建自己的字体库,使用中文字体更加方便快捷。

注意,不是任何芯片都能这样搭建,如果芯片的储存不足,就会影响正常程序的下载和使用,因为ESP32最低有4MB的外置储存(能用3MB)所以对于常用字体是绰绰有余的

ESP32TFT_LCD屏幕1700字常用字库下载
https://mbb.eet-china.com/download/316558.html

(二)教程

首先,在系统内,找到喜欢的文字
C:\Windows\Fonts
复制到桌面,可以得到一个TTF结尾的文件

打开arduino TFT_eSPI库的文件夹
C:\Users\用户名\Documents\Arduino\libraries\TFT_eSPI\Tools\Create_Smooth_Font\Create_font
这个是TFT库自带的生成字库的软件

将字库放进data文件夹内,最好改个名字,不要中文
我这里改成了xem.TTF

然后要下载一个Processing-processing3.5.4软件,这个软件可以将TTF文件转换成我们需要的字库字体
下载地址:https://mbb.eet-china.com/download/316557.html

然后打开Create_font.pde
更改以下内容
130行fontName,这里写你字库的名字
132行fontType,这里写字库的后缀,必须分大小写
137行fontSize,这里是字体大小设置,16最佳
140行displayFontSize,这里也是字体大小设置,16最佳

浏览器打开编码工具
http://www.jsons.cn/unicode/
中文转Unicode编码
输入你想要的文字,或者直接给一个2000字的常用字库

打开文本替换工具,我们需要将格式转换一下
https://www.lddgo.net/string/text-replace
注意前面有个英文的逗号,删了
如:\u6076\u9b54\u6e29\u6e7f\u5ea6
替换:0x6076,0x9b54,0x6e29,0x6e7f,0x5ea6,0x6674

将替换后的内容,打开Create_font.pde
330行specificUnicodes

static final int[] specificUnicodes = {
复制到括号中间(最后一位记得加英文逗号)
}

点击左上角的三角形运行
然后如果没问题,会生成vlw文件
将这个文件放到桌面

然后用软件将vlw文件转成arduino可读的文件
https://tomeko.net/online_tools/file_to_hex.php?lang=zh
复制生成后的字符

ino文件夹里面创建一个font.h文件

自己写下面一段
const uint8_t xem_font[] PROGMEM = {
【将生成的字符复制过来】
};

引用一下字库文件

启用字体

tft.drawString("多云大雨",0,40);
会自动寻找有的字体,直接写就好了

注意,需要将ESP32的内存设置为3M

(三)效果演示

#include <Arduino.h>#include <TFT_eSPI.h> // Hardware-specific library#include <SPI.h>//#define TFT_MOSI 23//#define TFT_SCLK 18//#define TFT_CS    5  // Chip select control pin//#define TFT_DC    2  // Data Command control pin//#define TFT_RST   4  // Reset pin (could connect to RST pin)
#include "xem_font.h"TFT_eSPI tft = TFT_eSPI(); // Invoke custom library
void setup(void){ Serial.begin(115200); tft.begin(); tft.fillScreen(TFT_BLACK); tft.loadFont(xem_font);}
void loop(){tft.setCursor(0,0);tft.print("aaa");

tft.drawString("大家好啊",0,40);}

作者:小恶魔owo 来源:面包板社区

扫码加入

单片机技术交流群


面包板社区
分享电子技术干货,电子工程师福利!EET电子工程专辑、ESM国际电子商情、EDN电子技术设计官方社区。
 最新文章