打印
[STM32F1]

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

[复制链接]
3099|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wbwest|  楼主 | 2014-7-7 17:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
很多人在用TFT屏做显示时,遇到一个汉字显示问题,到底是做放个字库显示还是汉字取模显示呢?

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

二、汉字取模
第一步:总结要用到的所有汉字,比如只有三个字:你好!;
第二步:打开取字模软件。例如:LCD点阵提取工具;

第三步:取字模。


注意上面提示:右键也可以选择字体。

以上面这个字体大小为例,点击确定。

注意:在左下脚,结束文字输入请按CTRL+ENTER组合键。

取模生成的字,如上图所示。下面我们使其换成代表汉字的代码(如果此处无法理解,google查一下“点阵”,很快都能明白,汉字的显示是一个一个点组合成的)。

左边选框,有一个取模方式,选C51格式,会输出上图字模数据。


拷贝生成的字模区,我们生成的字体“你”,算是完成了。

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

在写程序之前,我们把上面三个字的取模数据,放到字库文件中,截图如下:

要清楚,放的位置,在Font_lib.H中。

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


最后图片

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


沙发
mmuuss586| | 2014-7-7 17:09 | 只看该作者

不粗,谢谢分享;

使用特权

评论回复
板凳
wbwest|  楼主 | 2014-7-8 09:21 | 只看该作者
自己顶一下!

使用特权

评论回复
地板
zhaoyu2005| | 2014-7-8 09:28 | 只看该作者
如果带上ucgui就不用这种方式取模了,有个专用软件做字库,然后在代码里可以直接输入汉字

使用特权

评论回复
5
wbwest|  楼主 | 2014-7-8 10:27 | 只看该作者
zhaoyu2005 发表于 2014-7-8 09:28
如果带上ucgui就不用这种方式取模了,有个专用软件做字库,然后在代码里可以直接输入汉字 ...

那个占空间啊!上面这个是用于少量汉字的

使用特权

评论回复
6
zhaoyu2005| | 2014-7-8 14:50 | 只看该作者
wbwest 发表于 2014-7-8 10:27
那个占空间啊!上面这个是用于少量汉字的

那个也是可以根据需要自定义字库,ucgui本身确实占用资源,不过我觉得值,自从用过之后,再也不想回到以前了。就像用过ucos,再也不想裸奔了

使用特权

评论回复
7
wbwest|  楼主 | 2014-7-8 17:54 | 只看该作者
zhaoyu2005 发表于 2014-7-8 14:50
那个也是可以根据需要自定义字库,ucgui本身确实占用资源,不过我觉得值,自从用过之后,再也不想回到以前 ...

根据需要吧,如果加了UCGUI那字库最好用在外部SD卡,或者找个FLASH做字库,或者买个字库芯片,用MCU自己的FLASH,占空间还是很大的!16*16的字库都占200K左右的空间

使用特权

评论回复
8
zhaoyu2005| | 2014-7-8 18:27 | 只看该作者
wbwest 发表于 2014-7-8 17:54
根据需要吧,如果加了UCGUI那字库最好用在外部SD卡,或者找个FLASH做字库,或者买个字库芯片,用MCU自己 ...

看来你还没明白过来,可以根据实际情况只弄几个汉字的,没必要弄国标字库,我经在用了。也需要个工具转换,只是不用自己取模再复制了,把用到的字生产一个C文件,添加这个文件和字体名就可以了,是按照汉字实际编码排列的

使用特权

评论回复
9
wbwest|  楼主 | 2014-7-9 11:45 | 只看该作者
明白你的意思了!你的方便,不用复制取模数据了,只接取生成的C文件

使用特权

评论回复
10
samuelhu| | 2014-8-21 13:28 | 只看该作者
MARK 学习

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

27

帖子

0

粉丝