数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 9607|回复: 20

[STM] 又用土办法制作液晶显示字库,这次是GBK编码的字库。

[复制链接]
发表于 2019-5-11 17:42:25 | 显示全部楼层 |阅读模式
本帖最后由 落叶风 于 2019-5-11 17:45 编辑

   为了方便下一个制作,由于需用液晶显示,所以需要显示字库,由于不想买字库集成,而且制作需用到25Qxx存数据,所以用一片25Q128来制作一个字库,里面有16*8、24*12、32*16的ASCII字库,也有16*16、24*24、32*32的GBK字库,还有3张480*320的图片,由于没有相对应的字库文件,所以自己DIY,用上次5元打样回来的板进行制作。
  制作图片如下。用这个STM32F407的板来做。
编程中

以下为各种字库写入成功。




以下为对写好的字库及图片进行测试,检查有没有错误。

由于这次字库格式多,占了大约9M的空间,由于单片机只有1M的空间,为了方便,分了十几次写入:dizzy:。



由于这字库是通用的,所以为了日后制作的方便,把制作好的字库备份出来,日后只需用编程器写入就行了,以下为用编程器读出,并写一片看看校果,把用编程器写入的那片装上去,检查备份有没问题。



字库文件是采用逐列顺向,设置如下。

   字库的地址16*8ASCII字库是从0开始,24*12ASCII字库是从0x001000开始、32*16ASCII字库是从0x003000开始的,16*16GBK字库是从0x005000,24*24GBK字库是从0x101000,32*32GBK字库是从0x338000,图片1是从0x728000开始(占307200字节),图片2从0x773000开始,图片3从0x7BE000开始,
   使用方法对于16*8ASCII:ASCII编码值*16就是开始值,提取16个数据就是显示数据。对于24*12ASCII:ASCII编码值*36+0x001000就是开始值,提取36个数据就是显示数据。对于32*16ASCII:ASCII编码值*64+0x003000就是开始值,提取64个数据就是显示数据。
  对于GBK字库,16*16GBK:(汉字编码-0x8100)*32+0x005000,取32个数据。24*24GBK:(汉字编码-0x8100)*72+0x101000,取72个数据。32*32GBK:(汉字编码-0x8100)*128+0x338000,取128个数据。
以下为备份出来的字库文件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 8家元 +200 收起 理由
woss1001 + 30 優秀文章
jf201006 + 12 謝謝分享
超级女生 + 20 認真發帖
q562379863 + 20 謝謝分享
200birds + 20
stdzlqz + 20 優秀文章
hfsp + 18 謝謝分享
家睦 + 60

查看全部打赏

 楼主| 发表于 2019-5-11 18:21:49 | 显示全部楼层
2545889167 发表于 2019-5-11 17:55
我老站有发过个帖子 是从字库芯片里面读出来备份的 那个效果不错还有使用说明书 ...

它没有32×32的字库,所以还是自己DlY。
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-7-18 08:23 , Processed in 0.124801 second(s), 11 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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