合宙ESP32C3使用TFT_eSPI库操作ST7735s屏幕 (中)-Arduino中文社区 - Powered by Discuz! Archiver

topdog 发表于 2022-5-20 16:08

合宙ESP32C3使用TFT_eSPI库操作ST7735s屏幕 (中)

本帖最后由 topdog 于 2022-5-23 08:37 编辑

TFT_eSPI库里面含有自备字库的制作工具,数字、英文大小写和中文字体采用Unicode编码的方法。
一、首先要确定项目中自己常用的中文字和符号。
二、使用在线工具把中文字转化为Unicode 编码。



三、使用Notepad++处理Unicode编码

Notepad++打开已经转化好的Unicode编码表单,把 \u 全部替换成 ,0x ,在编辑栏中选择全选,在搜索栏中选择替换,在查找框中填入\u在替换框填入,0x然后按全部替换。



四,使用Create_Smooth_Font把常用字转化成*.vlw文件

(1)Create_Smooth_Font工具在 \Arduino\libraries\TFT_eSPI\Tools\ 文件夹里面;
(2)下载字体文件(TrueType 字体文件 (.ttf))到 Create_Smooth_Font\Create_font\data文件夹里面;
(3) 把字体文件 (.ttf)的名称改为英文;
(4)下载安装processing ;
(5)使用processing打开 \Create_Smooth_Font\Create_font 文件夹里面的 Create_font ;
(6)修改Create_font文件;
         1,第18行 String fontName = "***" , ***换成第(3)步骤的英文名称;
         2,第25、28行修改字体的大小,建议修改成24;
         3,第35至39行填入库自带的数字、英文大小写unicode编码块;
         4,第42至44行填入第三步骤转化好的unicode编码表单。   





(7)点击运行之后,成功以后会有图文框跳出,字库里含有的数字,大小写英文字母和中文都会汇总显示出来。在 \Create_Smooth_Font\Create_font\FontFiles 文件夹里面会出现*.vlw文件;



(8)借助网站把*.vlw转换成十六进制代码。
      1,在File点选 选择文件 按钮,至PC机 \Create_Smooth_Font\Create_font\FontFiles 文件夹里面的*.vlw文件;
      2,点击 copy output to clipboard 按钮复制;



3, 黏贴到*.ino文件的自定义字库的*.h标签中。

   A、设置标签


B、黏贴上述第(8)2步骤到花括号里面,注意最后的字符末尾要,花括号后面;千万不要忘记,否则不编译。



示例代码如下:

#include "FONTKAIT24.h"

#include <SPI.h>
#include <TFT_eSPI.h>

TFT_eSPI tft = TFT_eSPI();

void setup(void) {
Serial.begin(250000);
tft.begin();
tft.setRotation(1);
}

void loop() {
tft.fillScreen(TFT_BLACK);
tft.loadFont(FONTKAITI24);
tft.setTextColor(TFT_WHITE, TFT_BLACK);
tft.setCursor(0, 0);
tft.setTextColor(TFT_YELLOW, TFT_BLACK);
tft.print("上海浦东天气: ");
tft.println();
tft.print("温度: ");
tft.println(); //
tft.print("湿度: ");
tft.unloadFont();
delay(5000);
}


最终效果:



tmld570707 发表于 2022-6-20 08:27

好!!!!!!!!!!!!!!!!!!!!!!

topdog 发表于 2022-6-21 00:00

tmld570707 发表于 2022-6-20 08:27
好!!!!!!!!!!!!!!!!!!!!!!

谢谢关注,一起学习一起进步。
页: [1]
查看完整版本: 合宙ESP32C3使用TFT_eSPI库操作ST7735s屏幕 (中)