硬汉嵌入式论坛

 找回密码
 立即注册
查看: 8569|回复: 26
收起左侧

[emWin] 发布一个emWin外置GB2312或者XBF字体到SPI 或者NOR的完整方案

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106616
QQ
发表于 2015-5-12 15:51:16 | 显示全部楼层 |阅读模式
说明:
0. GB2312编码和Unicode编码的XBF字体的配置是一样。
1. 支持12点阵,16点阵,24点阵和32点阵的汉字显示。
2. 支持12点阵,16点阵,24点阵和32点阵的ASCII半角和全角字符。
3. 提供字体放在spi flash和nor flash两种方法,不使用文件系统,实际测试放在spi flash显示速度较快。
4. 使用文件系统时,将字库放到SD等外部存储器中的方法在我们的60期emWin教程里面已经有了,就不再重新制作了。
5. SPI FLASH中的字库通过SD进行复制。


=======================================================================
GB2312编码宋体显示效果:
1.png



Unicode编码的XBF字体
11.png

=======================================================================
GB2312编码宋体外置到SPI FLASH显示速度测试:




工程下载:
第71期:外置字库到NOR FLASH(GB2312字库)
http://pan.baidu.com/s/1c0lOSpi


第71期:外置字库到SPI FLASH(GB2312字库)
http://pan.baidu.com/s/1sjsPRrB


第71期:外置字库到SPI FLASH(XBF格式字体)
http://pan.baidu.com/s/1kTEGRhP

回复

使用道具 举报

6

主题

390

回帖

408

积分

高级会员

积分
408
发表于 2015-5-12 15:56:18 | 显示全部楼层
支持,多谢
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2015-5-12 16:15:38 | 显示全部楼层
[s:141]
回复

使用道具 举报

5

主题

578

回帖

593

积分

版主

Rank: 7Rank: 7Rank: 7

积分
593
发表于 2015-5-13 12:56:50 | 显示全部楼层
这个gb2313 字体做法,在emwin手册上没有看到啊。。。貌似是借用了ucgui中方法,是这样吗???

和xbf模式比较,两者运行速度有何区别
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106616
QQ
 楼主| 发表于 2015-5-13 16:32:20 | 显示全部楼层

回 myxiaonia 的帖子

myxiaonia:这个gb2313 字体做法,在emwin手册上没有看到啊。。。貌似是借用了ucgui中方法,是这样吗???

和xbf模式比较,两者运行速度有何区别 (2015-05-13 12:56) 
是的。
比xbf字体显示要快。
回复

使用道具 举报

36

主题

2039

回帖

2147

积分

至尊会员

积分
2147
发表于 2015-5-25 14:25:01 | 显示全部楼层
[s:151] [s:151]
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

0

主题

20

回帖

20

积分

新手上路

积分
20
发表于 2015-5-26 10:52:01 | 显示全部楼层
请问汉哥,
1、那个字库文件是如何制作的??
2、代码中那个字体偏移地址如何得到的啊??

#define   XBF_Font16BaseAdd    0x000F61BA
#define   XBF_Font24BaseAdd    0x0021715C
#define   XBF_Font32BaseAdd    0x0040F0D6
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106616
QQ
 楼主| 发表于 2015-5-26 10:55:10 | 显示全部楼层

回 zxcmcu 的帖子

zxcmcu:请问汉哥,那个字库文件是如何制作的?? (2015-05-26 10:52) 
xbf的字库是用emWin自带的FontCvt软件制作的,GBK的字库是用的现成的。是别人制作的。
回复

使用道具 举报

0

主题

20

回帖

20

积分

新手上路

积分
20
发表于 2015-5-26 11:32:34 | 显示全部楼层
再次请问汉哥,

代码中那个字体偏移地址如何得到的啊??

#define   XBF_Font16BaseAdd    0x000F61BA
#define   XBF_Font24BaseAdd    0x0021715C
#define   XBF_Font32BaseAdd    0x0040F0D6
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106616
QQ
 楼主| 发表于 2015-5-26 17:45:12 | 显示全部楼层

回 zxcmcu 的帖子

zxcmcu:再次请问汉哥,

代码中那个字体偏移地址如何得到的啊??

#define   XBF_Font16BaseAdd    0x000F61BA
....... (2015-05-26 11:32) 
根据不同字体所占空间的大小指定的。
回复

使用道具 举报

1

主题

7

回帖

1

积分

新手上路

积分
1
发表于 2015-6-5 17:25:04 | 显示全部楼层
版主,您好。代码我看后,有一个地方不是理解,就是SPI FLASH里面的字模数据和数据显示是怎么衔接起来的。在那个文件里呢,谢谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106616
QQ
 楼主| 发表于 2015-6-5 22:18:47 | 显示全部楼层

回 vdsvs 的帖子

vdsvs:
版主,您好。代码我看后,有一个地方不是理解,就是SPI FLASH里面的字模数据和数据显示是怎么衔接起来的。在那个文件里呢,谢谢!
看下我们的60期emWin教程,这个部分,基本一样的,只是这里使用的是SPI FLASH,教程里面用的是SD卡。

1.png
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2015-11-17 09:06:14 | 显示全部楼层
版主,你好,请问下《外置字库到SPI FLASH(XBF格式字体)》这个例程中,拷贝到sd卡中的font.bin文件是怎么来的,也就是说XBF怎么转为bin文件?
回复

使用道具 举报

6

主题

390

回帖

408

积分

高级会员

积分
408
发表于 2015-11-17 10:10:59 | 显示全部楼层
[s:151]  [s:151]  [s:151]  [s:151]  [s:151]
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106616
QQ
 楼主| 发表于 2015-11-17 10:12:48 | 显示全部楼层

回 lookli 的帖子

lookli:版主,你好,请问下《外置字库到SPI FLASH(XBF格式字体)》这个例程中,拷贝到sd卡中的font.bin文件是怎么来的,也就是说XBF怎么转为bin文件? (2015-11-17 09:06) 
直接改xbf后缀为bin即可。
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2015-11-17 10:36:15 | 显示全部楼层
多谢版主,我已经按照你的方法实现了汉字显示,但是发现你那四个字库里好多字没有。然后还想问下,怎么把四个字库做到一个文件里。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106616
QQ
 楼主| 发表于 2015-11-17 10:40:58 | 显示全部楼层

回 lookli 的帖子

lookli:多谢版主,我已经按照你的方法实现了汉字显示,但是发现你那四个字库里好多字没有。然后还想问下,怎么把四个字库做到一个文件里。 (2015-11-17 10:36) 
使用我们这里的bin文件合并助手试试:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=8627
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2015-11-18 15:09:27 | 显示全部楼层
版主,再问一下,MDK编译某些中文字体是编译通不过,MDK版本是5.17,文件是utf-8,然后MDK中选了 UTF-8   GB2312,都不行
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2015-11-18 15:27:59 | 显示全部楼层

回 lookli 的帖子

lookli:版主,再问一下,MDK编译某些中文字体是编译通不过,MDK版本是5.17,文件是utf-8,然后MDK中选了 UTF-8   GB2312,都不行 (2015-11-18 15:09) 
已经解决,用notepad++,把文件编码转为UTF-8编码模式,之前打开显示的编码模式是UTF-8无BOM格式,那种是不行的。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106616
QQ
 楼主| 发表于 2015-11-19 11:34:56 | 显示全部楼层

回 lookli 的帖子

lookli:已经解决,用notepad++,把文件编码转为UTF-8编码模式,之前打开显示的编码模式是UTF-8无BOM格式,那种是不行的。 (2015-11-18 15:27) 
不好意思啊,刚看到你的问题[s:142]
回复

使用道具 举报

11

主题

103

回帖

31

积分

初级会员

积分
31
发表于 2015-11-19 19:06:04 | 显示全部楼层
如果是我自己定义的字库呢,该怎么来?
比如 宋体雅黑 2PP抗锯齿, 18号字体,
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106616
QQ
 楼主| 发表于 2015-11-20 10:39:10 | 显示全部楼层

回 qq27488 的帖子

qq27488:如果是我自己定义的字库呢,该怎么来?
比如 宋体雅黑 2PP抗锯齿, 18号字体,  (2015-11-19 19:06) 
自定义字库好像不行,不过你可以在电脑上面安装任意其它的字体,然后用emWin的FontCVT小软件转换这个字体。
回复

使用道具 举报

9

主题

39

回帖

66

积分

初级会员

积分
66
发表于 2015-12-3 14:03:20 | 显示全部楼层
感谢版主的分享,之前已经实现了SPI FLASH的方法,由于字体的大小字号不一样,因此还得用到XBF方式的方便
回复

使用道具 举报

9

主题

39

回帖

66

积分

初级会员

积分
66
发表于 2015-12-3 14:05:04 | 显示全部楼层
不过我在自己制作XBF字库的时候发现一个问题,比如我做的是16×16的大小应该是32个字节,但是发现变成了64个字节这个问题感觉很奇怪哦
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106616
QQ
 楼主| 发表于 2015-12-3 14:28:18 | 显示全部楼层

回 ajianyes 的帖子

ajianyes:
不过我在自己制作XBF字库的时候发现一个问题,比如我做的是16×16的大小应该是32个字节,但是发现变成了64个字节这个问题感觉很奇怪哦
你是如何知道16*16生成的是64字节,XBF的内部结构还真没有研究过。
另外16*16这种标准点阵用在等宽字体上面才合适,比如宋体的GB2312编码是32字节的。
回复

使用道具 举报

5

主题

109

回帖

124

积分

初级会员

积分
124
发表于 2015-12-14 10:41:39 | 显示全部楼层
好东西,收藏
回复

使用道具 举报

7

主题

70

回帖

91

积分

初级会员

积分
91
发表于 2018-8-6 20:22:58 | 显示全部楼层
先收藏,有空试试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-26 13:11 , Processed in 0.513999 second(s), 36 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表