[STM32F1] 汉字显示1—取模方式(学习笔记)

[复制链接]
 楼主| wbwest 发表于 2014-7-7 17:01 | 显示全部楼层 |阅读模式
很多人在用TFT屏做显示时,遇到一个汉字显示问题,到底是做放个字库显示还是汉字取模显示呢?

一、 做字库前的分析
当拿到项目要求后,如果其中一段,看到有汉字显示的要求时,就不得不考虑汉字的问题了。
如果使用字库,根据使用字数多少,可有如下划分:
A、用量很多。基本要用到全部汉字。此时要考虑自己手中存储资源,是否有足够的空间放这些字模(即,内部,外部FALSH存储)。
1、如果空间充足,可以做字库到FLASH中(有例程SD卡做字库,字库大小,根据取模大小不同,有几百K到几十M不等),把SD卡的字库文件读出来,存储到FALSH(W26Q16)中。
2、空间少,可以外买字库芯片(当然啦,产品成本要增加)。
B、用量很少,可以自己取模(比如,二三十个汉字,用字库太浪费FLASH了),那么下面写的流程,即为单个取模流程。

二、汉字取模
第一步:总结要用到的所有汉字,比如只有三个字:你好!;
第二步:打开取字模软件。例如:LCD点阵提取工具;
图片1.png
第三步:取字模。
图片2.png
图片3.png
注意上面提示:右键也可以选择字体。
图片4.png
以上面这个字体大小为例,点击确定。
图片5.png
注意:在左下脚,结束文字输入请按CTRL+ENTER组合键。

取模生成的字,如上图所示。下面我们使其换成代表汉字的代码(如果此处无法理解,google查一下“点阵”,很快都能明白,汉字的显示是一个一个点组合成的)。
图片6.png
左边选框,有一个取模方式,选C51格式,会输出上图字模数据。
图片7.png
图片8.png
拷贝生成的字模区,我们生成的字体“你”,算是完成了。

三、 软件的分析
我假设,屏驱动已好,你也已经知道如何打点了。

在写程序之前,我们把上面三个字的取模数据,放到字库文件中,截图如下:
图片9.png
要清楚,放的位置,在Font_lib.H中。

放入上面字模数据后,如何调用他们呢,我们在main.c主程序中加放这一句话
WriteString(10,150,"你好!",Red);
这句话的意思:在X轴10,Y轴150的地方作为起始点,打出字样“你好!”,字体色为Red红色。如下图
图片10.png

最后图片 图片11.png

硬件平台:红龙103
程序: 【15】LCD—红龙显示汉字测试.rar (1.28 MB, 下载次数: 45)


mmuuss586 发表于 2014-7-7 17:09 | 显示全部楼层

不粗,谢谢分享;
 楼主| wbwest 发表于 2014-7-8 09:21 | 显示全部楼层
自己顶一下!
zhaoyu2005 发表于 2014-7-8 09:28 | 显示全部楼层
如果带上ucgui就不用这种方式取模了,有个专用软件做字库,然后在代码里可以直接输入汉字
 楼主| wbwest 发表于 2014-7-8 10:27 | 显示全部楼层
zhaoyu2005 发表于 2014-7-8 09:28
如果带上ucgui就不用这种方式取模了,有个专用软件做字库,然后在代码里可以直接输入汉字 ...

那个占空间啊!上面这个是用于少量汉字的
zhaoyu2005 发表于 2014-7-8 14:50 | 显示全部楼层
wbwest 发表于 2014-7-8 10:27
那个占空间啊!上面这个是用于少量汉字的

那个也是可以根据需要自定义字库,ucgui本身确实占用资源,不过我觉得值,自从用过之后,再也不想回到以前了。就像用过ucos,再也不想裸奔了
 楼主| wbwest 发表于 2014-7-8 17:54 | 显示全部楼层
zhaoyu2005 发表于 2014-7-8 14:50
那个也是可以根据需要自定义字库,ucgui本身确实占用资源,不过我觉得值,自从用过之后,再也不想回到以前 ...

根据需要吧,如果加了UCGUI那字库最好用在外部SD卡,或者找个FLASH做字库,或者买个字库芯片,用MCU自己的FLASH,占空间还是很大的!16*16的字库都占200K左右的空间
zhaoyu2005 发表于 2014-7-8 18:27 | 显示全部楼层
wbwest 发表于 2014-7-8 17:54
根据需要吧,如果加了UCGUI那字库最好用在外部SD卡,或者找个FLASH做字库,或者买个字库芯片,用MCU自己 ...

看来你还没明白过来,可以根据实际情况只弄几个汉字的,没必要弄国标字库,我经在用了。也需要个工具转换,只是不用自己取模再复制了,把用到的字生产一个C文件,添加这个文件和字体名就可以了,是按照汉字实际编码排列的
 楼主| wbwest 发表于 2014-7-9 11:45 | 显示全部楼层
明白你的意思了!你的方便,不用复制取模数据了,只接取生成的C文件
samuelhu 发表于 2014-8-21 13:28 | 显示全部楼层
MARK 学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

27

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

5

主题

27

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部