打印
[STM32F1]

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

[复制链接]
4328|25
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 wangbao619 于 2014-6-26 09:13 编辑

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)
沙发
沉默胜过白金| | 2014-6-25 11:02 | 只看该作者
mark !

使用特权

评论回复
板凳
mmuuss586| | 2014-6-25 12:05 | 只看该作者
不错,谢谢分享

使用特权

评论回复
地板
wangbao619|  楼主 | 2014-6-25 14:02 | 只看该作者
mmuuss586 发表于 2014-6-25 12:05
不错,谢谢分享

谢谢支持!:)

使用特权

评论回复
5
jeansonm| | 2014-6-26 10:08 | 只看该作者
写的很详细哦

使用特权

评论回复
6
wangbao619|  楼主 | 2014-6-26 13:35 | 只看该作者
jeansonm 发表于 2014-6-26 10:08
写的很详细哦

谢谢支持。

使用特权

评论回复
7
朝阳之光| | 2014-6-26 13:50 | 只看该作者
支持

使用特权

评论回复
8
wangbao619|  楼主 | 2014-6-27 09:29 | 只看该作者
自己顶一下。

使用特权

评论回复
9
samuelhu| | 2014-7-18 12:00 | 只看该作者
不错,挺详细的

使用特权

评论回复
10
qq4988| | 2014-7-23 19:38 | 只看该作者
:)

使用特权

评论回复
11
samuelhu| | 2014-8-11 16:41 | 只看该作者
MARK!!!

使用特权

评论回复
12
szopenmcu| | 2014-8-14 14:05 | 只看该作者
:)支持楼主:handshake

使用特权

评论回复
13
yukaigogogo| | 2014-8-14 16:28 | 只看该作者
这个得收下,刚好用到这一块。

使用特权

评论回复
14
拿起书本| | 2014-8-14 19:10 | 只看该作者
讲的很详细,显示屏,做产品很经常用到,收藏——感谢分享!

使用特权

评论回复
15
szopenmcu| | 2014-11-6 14:57 | 只看该作者
庆祝双11,深圳旺宝电子真情回馈广大消费者,送大礼!http://openmcu.taobao.com

1)【买一赠一】购买金龙107/红龙407赠(SD卡一个或JLINK V8仿真器或OV7670摄像头或NRF24L01无线模块一对)

2)【 5折优惠】购买红龙103,金龙207,金龙407,路虎1768,宝马1768,TINY11C14,启航板,TI玉兔均5折优惠回馈广大新老用户!

使用特权

评论回复
16
szopenmcu| | 2014-12-4 14:31 | 只看该作者
感谢楼主的分享,学习学习

使用特权

评论回复
17
szopenmcu| | 2014-12-17 14:49 | 只看该作者
非常感谢楼主,无私奉献的精神:)

使用特权

评论回复
18
珍惜放弃| | 2015-4-13 19:07 | 只看该作者
必须赞啊,现在就是 少这个//

使用特权

评论回复
19
lyn3210| | 2015-4-14 11:03 | 只看该作者

使用特权

评论回复
20
深圳旺宝| | 2016-1-14 15:15 | 只看该作者

使用特权

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

本版积分规则

个人签名:金龙107开发板http://shop36995246.taobao.com/

7

主题

65

帖子

1

粉丝