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