Arduino上U8g2库自制中文库

U8g2最新版的本身自带中文库,之所以需要自制,是为了减小内存

文章最后会标一下u8g2自带的中文库不过有些板子不能用gb2312等大字体;

字体库需要的是需要的是下面的这种编码,而实现这种编码,就需要map文件和bdf文件;
实现这种编码的方法:
在这里插入图片描述

一、首先生成map文件

1、汉字转Unicode点击就能跳转

在这里插入图片描述

2、Unicode码放到文本编辑器(比如“记事本”)里,将"\u"替换成",$",并保存成map文件

在这里插入图片描述

二、 bdf文件生成

生成这个需要我们下载一个工具GUITool

1、windows系统一般在C:\Windows\Fonts目录内,找到您想要制作的字体,例如我们选择“新宋体”,拷贝到其他文件夹内备用,字体文件为simsun.ttc,拷贝到自己的新建文件夹内

2、用GUITool工具生成 bdf文件

在这里插入图片描述

三、 制作U8g2需要的字体代码

1、使用U8g2提供的工具bdfconv.exe生成字库文件代码,到u8g2-master目录\tools\font\bdfconv\内,把这个文件复制到自己的新建文件夹中;

2、新建txt文件写入代码并重命名 .bat文件。双击后,就生成了u8g2_font_hapiwan.c 文件

输入:
bdfconv.exe -v -b 0 -f 1 bdf文件路径 -M map文件路径 -n 生成的字体名称 -o 生成的字体.c文件 -d bdf文件路径

bdfconv.exe -v -b 0 -f 1 D:/newfont/simsun_U16.bdf -M D:/newfont/gb2312.map -n u8g2_font_hapiwan -o u8g2_font_hapiwan.c -d D:/newfont/simsun_U16.bdf

在这里插入图片描述

四、将字体代码放到u8g2中

1、找到u8g2的u8g2_fonts.c文件:一般在arduino库目录下的/libraries/u8g2/src/clib中,并将我们生成的代码放进去

在这里插入图片描述

2、找到u8g2的同目录下的u8g2.c文件:

在这里插入图片描述

结束,那么下面说一下u8g2都有哪些自带的中文库

u8g2_font_unifont_t_chinese1
u8g2_font_unifont_t_chinese2
u8g2_font_unifont_t_chinese3
u8g2_font_wqy12_t_chinese1
u8g2_font_wqy12_t_chinese2
u8g2_font_wqy12_t_chinese3
u8g2_font_wqy12_t_gb2312
u8g2_font_wqy12_t_gb2312a
u8g2_font_wqy12_t_gb2312b
u8g2_font_wqy13_t_chinese1
u8g2_font_wqy13_t_chinese2
u8g2_font_wqy13_t_chinese3
u8g2_font_wqy13_t_gb2312
u8g2_font_wqy13_t_gb2312a
u8g2_font_wqy13_t_gb2312b
u8g2_font_wqy14_t_chinese1
u8g2_font_wqy14_t_chinese2
u8g2_font_wqy14_t_chinese3
u8g2_font_wqy14_t_gb2312
u8g2_font_wqy14_t_gb2312a
u8g2_font_wqy14_t_gb2312b
u8g2_font_wqy15_t_chinese1
u8g2_font_wqy15_t_chinese2
u8g2_font_wqy15_t_chinese3
u8g2_font_wqy15_t_gb2312
u8g2_font_wqy15_t_gb2312a
u8g2_font_wqy15_t_gb2312b
u8g2_font_wqy16_t_chinese1
u8g2_font_wqy16_t_chinese2
u8g2_font_wqy16_t_chinese3
u8g2_font_wqy16_t_gb2312
u8g2_font_wqy16_t_gb2312a
u8g2_font_wqy16_t_gb2312b

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428003.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库创建(利用写好的数据库表生成创建表的sql语句+利用生成的数据库创建表加同步数据sql)

一.利用写好的数据库表生成创建表的sql语句 1.简单创建一个数据库,并建一个表,并编辑数据。 a.建库 b.建表 c.编辑表,保存时输入表名 d.刷新一下,出来了 e.转存导出sql文件。 二.利用生成的数据库创建表加同步数据sql。…

字符串之字符判断以及字母的大小写转换

char c //给定字符c 1.isalpha© //判断是否是字母 2.isdigit© //判断是否是数字 3.islower© //判断是否是小写字母 4.isupper© //判断是否是大写字母 5.tolower© //转变成小写字母 6.touper© //转变成代写字母 至于说应用,看代码悟吧…

symfony api 错误响应_Postman for Mac(API管理开发软件)

Postman for Mac是一款可在Mac端运行的API管理开发软件,postman 下载 mac不仅可以调试简单的css、html、脚本等简单的网页基本信息,它还可以发送几乎所有类型的HTTP请求,用户可以利用Chrome插件的形式把各种模拟用户HTTP请求的数据发送到服务…

前端学习

学习整理了web缓存的一些策略,如有不正确的地方,欢迎指正。 浏览器端的缓存规则 对于浏览器端的缓存来讲,这些规则是在HTTP协议头和HTML页面的Meta标签中定义的。他们分别从新鲜度和校验值两个维度来规定浏览器是否可以直接使用缓存中的副本&…

string的反转输出以及char型字符串的反转输出

string str; //string型变量str char str1[]; //char型变量str string的反转输出: reverse(str.begin(),str.end()) char型的反转输出: strrev(str1); 实际应用看参考代码: #include<iostream> #include<bits/stdc.h> using namespace std; int main() {string s…

数据流图怎么画_概率图模型怎么画?5个步骤完成专业模型图

概率图模型是什么呢&#xff1f;概率图模型是用图形模式来表示各个变量概率相关关系以及与模型有关的变量的联合概率分布的一类模型。概率图理论可分为概率图模型表示理论、概率图模型推理理论和概率图模型学习理论三部分。概率图模型一般包括贝叶斯网络、马尔可夫网络和隐马尔…

res.status === 200含义

200本身就是http请求成功的响应值

process启动jar包判断成功_恒一广告助力2020年壹基金温暖包安康发放启动仪式成功举办...

有爱的冬天不会冷11月28日上午&#xff0c;由共青团安康市委、安康市教育体育局、安康市民政局、安康市关心下一代组委会、安康广播电视台、安康义工联合会主办的“壹家人温暖安康共青团助力脱贫攻坚暖冬行动”暨2020年壹基金温暖包安康发放启动仪式在安康市金州体育场成功举办…

pat(基本编程题集)6-2 多项式求值 (15 分)

这道题感觉有点狗&#xff0c;不难&#xff0c;但是第一次做的时候&#xff0c;运行超时错误让我很不解&#xff0c;一共才10个数大的数组&#xff0c;最坏情况也不过是10*10的时间复杂度O&#xff08;1&#xff09;。 但是限制就是辣么严&#xff0c;这个单层循环的优化有些类…

Zabbix Server设置主机监控

转载于:https://www.cnblogs.com/momenglin/p/8557447.html

C语言之double实数的自动四舍五入取整

之前学习C语言的时候一直没有注意到原来double类型的数据在C里通过取不同的小数位数&#xff0c;输出能够实现四舍六入。 指正: double型数据可以实现0到4的舍操作以及6到9的入操作&#xff0c; 在真值为5的时候&#xff0c;舍入并不确定。 这里通过一个案例&#xff0c;一看…

mysql修改字段默认值_MySQL增删改查操作

增删改查操作查询表中的所有的记录&#xff1a;select from 表名(xs)创建数据库&#xff1a;create database if not exists xsgl;8.2创建表&#xff1a;cerate table if not exists&#xff08;判断是否存在&#xff09; 表名&#xff08;xsb&#xff09;8.3删除&#xff1a;d…

三羊献瑞(暴力破解)

package 计蒜客;public class 三羊献瑞 {/*** param args*/public static void main(String[] args) {// TODO Auto-generated method stubfor(int i5000;i<9876;i){for(int j1023;j<9876;j){int kij;int ai/1000;int b(i/100)%10;int c(i/10)%10;int di%10;int ej/1000;…

回来来看初学C语言的一些有趣的图形的输出

现在再来看那些当初觉得困难的东西&#xff0c;经常都会一笑而过。 图1: a.源码: #include<iostream> using namespace std; int main() {int n;cin>>n;for(int i1;i<n;i){for(int j1;j<n-i;j){cout<<" ";}for(int k1;k<n;k){cout<&l…

视图添加字段_使用ExploreByTouchHelper辅助类为自定义视图添加虚拟视图

在安卓开发过程中&#xff0c;为了视觉和功能的需要开发者经常会使用自定义视图大多数的自定义视图是组合现有的控件来完成特定的功能但是&#xff0c;有一种自定义视图是通过画笔在画布上画出自定义的子视图的&#xff0c;例如日期控件&#xff0c;颜色选择面板等由于自定义视…

蓝桥杯第六届C语言B——积分之谜

一开始想口算的&#xff0c;后来发现高估自己了&#xff0c;仔细一想还是暴力枚举简单一些。 源码如下: #include<iostream> using namespace std; int main() {int a,b,c;for(a1;a<105;a){for(b1;b<42;b){for(c1;c<315;c){int n13*a7*bc;int n24*a10*bc;if(n1…

C++中引用符的使用

初学数据结构的时候&#xff0c;大家可能经常可以看到在线性表的一些操作函数中会有**&**的使用&#xff0c;初学者或者跨考考生或许会对这一点的使用存在着一段不短时间的疑惑。今天就这一点展开简单的描述。 实质上&#xff0c;在C中引用符号的使用大家可以看成是c中指针…

软件测试之逻辑覆盖测试理论总结(白话文)

1.语句覆盖 语句覆盖就是所有可执行的语句都可以得到一次执行。注意可执行那三个字就可以&#xff0c;因为可能有的判定条件比较狗&#xff0c;它下面的分支的语句无论如何都不会执行。 例如这随手就能写出一个: if(x>100&&x<100) {x100; }当然实际上一般不会有…

软件测试之控制流图以及环形复杂度独立路径求解问题

首先需要明确的是&#xff0c;控制流图并不等于流程图&#xff0c;可以理解为控制流图的出现是为了后续的环形复杂度的计算和写出独立路径和配以相应的测试用例。 所以控制流图是核心&#xff0c;画图的时候务必谨慎再谨慎&#xff0c;要不然可能你后面的全部崩盘。 控制流图考…

软件测试之黑盒测试-等价类划分法

首先&#xff0c;明确等价类分为有效等价类和无效等价类两种&#xff0c;一般无效等价类都是根据有效等价类写出来的。为了严谨&#xff0c;在白话文之前还是附个定义吧&#xff0c;以免误人子弟。 说白了&#xff0c;有效等价类就是有效输入数据的集合&#xff0c;无效等价类…