切换到宽版
  • 4053阅读
  • 15回复

[STM]【分享】单片机这种嵌入式芯片中文显示字库问题利用结构体数组作为字库是可行廉价办法 [复制链接]

上一主题 下一主题
离线zqharmstudio
 
发帖
1029
M币
4705
专家
24
粉丝
69
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2017-08-23
— 本帖被 香瑶 执行加亮操作(2017-08-23) —


大佬直接路过吧,可能对菜鸟有帮助
这个事情还得从前几天说起
以前一直用gtl16s4这款芯片做字库,行列式
不过这两天玩了一个大号液晶屏
数据写入方向和之前的小屏幕不一样了,现在是逐行式
所以现在有两种办法,第一个是把一个汉字读出来,然后把行列式的字模数据转换为逐行式数据再送显示
另一种是买排列方式对应的芯片
字库排列方式有以下几种

比如

简直是天价了!
用不起,用不起,只买了俩
虽然嘴上说用不起,但是用起来还是很舒服的,多种字号等宽不等宽宋体,但是我只需要14*14中文和7*14英文字体,而且一共也就是两百个字而已
所以还是放弃了
使用数组是最方便的,单片机反正有256K存储空间,不用也是浪费
常用的显示办法就是:
(这张图片不是程序,是示意图,程序里汉字不可能这样写的,这是示意图,包括那个鸟字,应该是niao,截图麻烦,不改了)


这样做是最简单的,但是缺点也是很明显的,
使用这这些数组作为汉字字模,需要记住每个汉字的数组的名字,效率显然太低
所以,可以改进一下,把左右的字模都放在一起,然后调用的时候只要记住每个汉字的偏移地址
就可以了

但是这样缺点也是很明显,也同样要求记住每个字的偏移量
调用时可以这样:(如下图)

不灵活,汉字的顺序必须要记清楚,而且追加汉字的时候,只能在后边追加,不让谈偏移量就改变了
不直观,无法编写一个查询的函数,只能手工一个一个的写进去
所以,针对此,做一下小的改动!利用结构体进行存储,同时存储点阵数据和索引
字模软件根据显示屏驱动芯片的需要,设置取模方式和数据方向
比如 这样(逐行扫描,高位在前)

对于mdk5来说,对汉字的支持不是很好,所以,如果在中文输入法下复制字模数据,mdk里面的汉字索引会显示“?”


解决办法是:在英文输入法下复制字模数据到mdk里面,如下图,就正常了



然后
编写一个函数查询传入的汉字,是否在表中存在该索引,有的话,传递索引位置给显示函数,显示函数
再去提取点阵,刷屏就行了
封装一下,不需要关心字模放在了什么位置,直接把要显示的内容的指针传递一下,让函数自己去找就可以了,很方便


通过索引查找字模的部分


效果图


[ 此帖被zqharmstudio在2017-08-24 10:56重新编辑 ]
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共2条打赏 ,M币+100 ,专家+1
离线xinmengzai

发帖
1401
M币
3789
专家
1
粉丝
24
只看该作者 1楼 发表于: 2017-08-23
请登录后查看
离线jianjiang525

发帖
124
M币
7
专家
0
粉丝
2
只看该作者 2楼 发表于: 2017-08-23
离线zqharmstudio
发帖
1029
M币
4705
专家
24
粉丝
69
只看该作者 3楼 发表于: 2017-08-23
回 jianjiang525 的帖子
请登录后查看
离线jianjiang525

发帖
124
M币
7
专家
0
粉丝
2
只看该作者 4楼 发表于: 2017-08-23
离线yanxue11

发帖
547
M币
4776
专家
9
粉丝
96
只看该作者 5楼 发表于: 2017-08-23
Re:【分享】单片机这种嵌入式芯片中文显示字库问题利用结构体数组作为字库是可行廉 ..
请登录后查看
本帖最近打赏记录:共1条打赏 ,专家+1
离线zqharmstudio
发帖
1029
M币
4705
专家
24
粉丝
69
只看该作者 6楼 发表于: 2017-08-23
回 yanxue11 的帖子
请登录后查看
离线2545889167

发帖
13268
M币
20754
专家
302
粉丝
4860
只看该作者 7楼 发表于: 2017-08-23
Re:【分享】单片机这种嵌入式芯片中文显示字库问题利用结构体数组作为字库是可行廉 ..
请登录后查看
离线zqharmstudio
发帖
1029
M币
4705
专家
24
粉丝
69
只看该作者 8楼 发表于: 2017-08-23
回 2545889167 的帖子
请登录后查看
离线zeze10000

发帖
2858
M币
8559
专家
35
粉丝
112
只看该作者 9楼 发表于: 2017-08-23
请登录后查看
快速回复
限80 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个