合宙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
好!!!!!!!!!!!!!!!!!!!!!!
谢谢关注,一起学习一起进步。
页:
[1]