一简介在使用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.pde330行specificUnicodesstatic final int[] specificUnicodes {复制到括号中间最后一位记得加英文逗号}点击左上角的三角形运行然后如果没问题会生成vlw文件将这个文件放到桌面然后用软件将vlw文件转成arduino可读的文件https://tomeko.net/online_tools/file_to_hex.php?langzh复制生成后的字符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 libraryvoid 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);}