查看: 401|回复: 2

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

[复制链接]

签到天数: 474 天

[LV.9]以坛为家II

发表于 2022-5-20 16:08 | 显示全部楼层 |阅读模式
本帖最后由 topdog 于 2022-5-23 08:37 编辑

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

Cc.gif

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

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

Cd.gif

四,使用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编码表单。   

tft中文.PNG



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

esp32c3中文.PNG

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

tft中文1.PNG

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

     A、设置标签
Ce.gif

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

Cf.gif

示例代码如下:

#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);
}



最终效果:


Cn.gif

签到天数: 474 天

[LV.9]以坛为家II

 楼主| 发表于 2022-6-21 00:00 | 显示全部楼层
tmld570707 发表于 2022-6-20 08:27
好!!!!!!!!!!!!!!!!!!!!!!

谢谢关注,一起学习一起进步。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

IRremoteESP8266都是英文的 用法看不懂
IRremoteESP8266都是英文
最近在用IRremoteESP8266库,但是里面用法解释都是全英文的,也没有例子,实在看起来
blinker物联网教程——6、wifi插座
blinker物联网教程——6、
简介[hr] 在日常生活中,我们可能有接触到wifi插座,所谓wifi插座就是给原本的插座加
想自制TB6612电机驱动模块
想自制TB6612电机驱动模块
想知道板子上三个电容的参数
ESP32用不了arduino库里的tone()函数!!!
ESP32用不了arduino库里的
选择用其他开发板就能用,唯独ESP32用不了,好像一直检索不到路径,折腾两天了
【搬运】初学者的PID教程 by Brett Beauregard
【搬运】初学者的PID教程
在网上看到一个写的很详细的PID教程,一步一步地讲解Arduino PID库的原理,非常棒。帖
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表