这篇文章主要教大家如何取ASCII的字模,以及大于32字体的字模要怎么取,要注意什么,我查了网上大量的资料都是只教了别人取12、16、24、32大小的字模,大于32的都没有介绍,我按照取32大小的方法取48的时候遇到了一些问题,最后我也是解决了成功显示,下面就分享给大家。
成功显示48大小的字符
软件下载地址https://pan.baidu.com/s/11vAQ8zX-tf65Dm9gMiKG5Q
提取码:waxt
附:ASCII码完整表:注第一个字符为空格,不要遗漏
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
1、打开取模软件
2、左上角模式选择为字符模式
3、点击选项
4、设置如下,然后点击确定。
5、选择你喜欢的字体,选择字体大小,如果你要取12*12的就选宽12高12,如果你要取16*16的就选宽16高16,后面不同大小的字模也是一样的操作。(大于32的要有多一部的处理,后面后说)
6、 然后在输入栏输入ASCII码表,点击生成字模
把字模复制到自己的字库文件中就可以了,下面示例是16大小的ASCII字模
如果你的字大小大于32,就要注意一个地方,以48大小为例,一个48*24大小的字符占48*24/8=144个字节,而字模软件最大是输出80个,所以大于80时输出会有一点问题需要自己处理。
下面我取一个大小为48,字符‘1’的字模,软件取出来的字模是这样的
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x30,0x00,0x00,0x38,0x00,0xC0,0x3F,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38},
{0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x7C,0x00,0xC0,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"1",0*/
/* (24 X 48 , 宋体 )*/
正常来说一个字符对应一个括号,但是现在出现了两个,这是因为刚刚我们说的最大一个输出是80,所以大于80的就会被分成多组来输出,所以我们要人工把这些多的括号给去掉。修改后如下
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x30,0x00,0x00,0x38,0x00,0xC0,0x3F,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,
0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x7C,0x00,0xC0,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"1",0*/
/* (24 X 48 , 宋体 )*/
每一个字符都要这样修改才能用
上面说的都改完后可以还会出现报错,..\Output\led.axf: Error: L6406E: No space in execution regions with .ANY selector matching malloc.o,这是因为你取得字模太多了,单片机内存不足了,需要释放一点不用的内存。
以上就是所以内容,希望可以帮到大家,如果有错的地方欢迎大家批评指正。
我最近建了一个嵌入式的QQ交流群,感兴趣的可以进群了解一下,我会在群里分享一些常用的代码封装,以及一些项目的源码。QQ群讨论也是完全开放,只要不打广告大家可以就嵌入式尽情的沟通和交流,大家对文章中的内容有疑问也可以在群中提出,有空会尽我所能给大家一些帮助。QQ群号:643408467