关于编码
GB2312编码
简体中文。
GB2312为简体中文字符集,由6763个常用汉字和 682个全角的非汉字字符组成。
GBK编码
简体中文、繁体中文、日语、韩语。
共收录了21003个汉字,完全兼容GB2312-80标准,支持国际标准ISO/IEC10646-1和国家标准GB13000-1中的全部中日韩汉字,并包含了BIG5编码(繁体)中的所有汉字。
Unicode 全球统一编码
支持全世界所有文字的国际标准编码。
总结
如果只需简体中文,使用GB2312一般够用;
如果需要支持繁体或日韩,使用GBK。
汉字显示方案
直接汉字显示
指定义一个汉字字符串,然后直接显示到屏幕。
比如使用GBK编码,那么我们只需要保证c代码文件是以GBK编码的,那么字符串也是对应编码,显示时不需要进行编码转换,直接索引字符集来显示即可。
Fatfs文件系统汉字支持
对于Fatfs,文件名是Unicode编码的,因此使用GBK编码时,还需要先将Unicode编码转换为GBK编码,之后再索引字符集才能正确显示。
Fatfs中提供了各种语言到Unicode的编码转换,比如中文字符集到Unicode转换为cc936.c。
注意:由于cc936.c中编码数组过大,会占用较多mcu flash资源,因此一般会将数组存在外置flash中。
字库制作
这里介绍两个字库制作软件,TS4及原子的ATK_XFONT 。
两个软件都可用,只要取模方式配置正确。
如果使用正点原子的汉字显示驱动,取模方式为 “先上下,后左右,高位在前”。
参考正点原子资料:http://www.openedv.com/docs/boards/stm32/zdyz_stm32f429_apolloV2.html
使用TS4制作
24*24 字体大小18
使用ATK_XFONT 制作
设置取模方式:
生成字库: