40回答

3收藏

STM32汉字字库(GB-2312)显示实验分享

 

STMCU STMCU 22997 人阅读 | 40 人回复 | 2014-06-24

本帖最后由 wangbao619 于 2014-6-26 08:53 编辑

TFT彩屏是大家经常用到的一个显示模块,用来显示字符图片等一些信息,作为产品的一个重要部分,实现人机交互。其中汉字显示是非常必要的,显示字符只需要采用对应的取模软件,把字符的点阵数据放在程序中即可。当我们要显示少量且固定的汉字时也可以采用这种方法,但是,需要大量且随机的汉字时,靠取模就不能完成了,需要汉字字库来实现。
这个实验使用的汉字大小是16*16,字库是放在SD卡根目录下sys文件夹中的。下面简单的解释一下实现过程。
先来一张图片看看实验效果。

本实验中,涉及到SD卡的使用,文件系统的移植,LCD屏的使用等。这里主要说明的是LCD的汉字显示
首先是对SD卡的初始化,以及LCD的初始化。
然后下面开始汉字以及一些字符的显示,字符的显示还是采用的字符点阵的方式。

首先是判断的显示位置,是否超过屏的显示范围,如果超过则是实现换行功能。然后下面是判断显示内容的ASCII知道下一个要显示的是字符还是汉字,如果ASCII大于0x80,则是汉字,小于0x80则是字符。因为字符是16*8,所以每显示一个字符横坐标+8,如果是汉字(16*16),横坐标是+16。如果你要使用其它大小的字体显示,请修改相应的数据。

在主要讲解汉字显示,字符显示和汉字一样的道理。显示汉字里面,首先开辟一个缓冲区,用来存储点阵数据,然后获取点阵数据,下面是通过获取的点阵数据来进行打点显示。注意我们是16*16的字体,所以每行16个点,一共16行。这里简单说一下打点,主要是采用设置一块16*16显示区域,然后逐一把每个点的数据送给LCD即可,注意要设置号彩屏内部的地址自增方向。否则容易出现错位等现象。注意最后要把显示区域设置成全屏显示。

怎么在字库中找到对应的汉字点阵信息,这里的文件系统已经移植好了,打开字库文件。注意的是,每个汉字都有一个内码,占两个字节,通过汉字内码的高低字节,通过公式32*((High8bit-0xa0-1)*94+(Low8bit-0xa0-1))来找到该汉字在字库中的偏移位置,然后读取32个字节,也就是该汉字的点阵数据。字体是16*16=256。256/8=32字节。最后关闭文件就可以了。

在整个实验中,要注意字体大小的设置,以及LCD设置的地址自增方向,否则容易出现错位现象。
最后附上整个工程,
【22】STM32_HZK16(SD)(3.2寸)(板上).rar (3.14 MB, 下载次数: 1159)





评分

参与人数 2声望 +2 与非币 +15 收起 理由
wbwest + 1 + 5
小菜儿 + 1 + 10 赞一个!

查看全部评分

TI玉兔LM3S9B96开发板,金龙STM32F107开发板
http://shop36995246.taobao.com/
分享到:
回复

使用道具 举报

回答|共 40 个

倒序浏览

沙发

奋斗哥

发表于 2014-6-25 09:17:09 | 只看该作者

多谢楼主分享,mark
板凳

fengxianglu

发表于 2014-6-25 09:27:19 | 只看该作者

很详细啊!
地板

ddllxxrr

发表于 2014-6-25 12:23:21 | 只看该作者

楼主写得太好了,顶
http://shop34182318.taobao.com/
https://shop436095304.taobao.com
5#

wbsouth

发表于 2014-6-25 13:57:45 | 只看该作者

ddllxxrr 发表于 2014-6-25 12:23
楼主写得太好了,顶

谢谢支持。
TI玉兔LM3S9B96开发板,金龙STM32F107开发板
http://shop36995246.taobao.com/
6#

jeanson-363338

发表于 2014-6-26 09:13:53 | 只看该作者

写的很详细啊
7#

toofree

发表于 2014-6-27 08:58:05 | 只看该作者

很好,用的gui
8#

wbsouth

发表于 2014-6-27 09:13:42 | 只看该作者

gs001588 发表于 2014-6-27 08:58
很好,用的gui

没有用GUI,只是名字搞了一个GUI_put。
TI玉兔LM3S9B96开发板,金龙STM32F107开发板
http://shop36995246.taobao.com/
9#

hpdell

发表于 2014-6-27 21:45:27 | 只看该作者

强烈支持,牛啊
10#

wbsouth

发表于 2014-6-30 09:12:12 | 只看该作者

hpdell 发表于 2014-6-27 21:45
强烈支持,牛啊

谢谢支持!
TI玉兔LM3S9B96开发板,金龙STM32F107开发板
http://shop36995246.taobao.com/
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条