初级会员

- 积分
- 140
- 金钱
- 140
- 注册时间
- 2016-7-18
- 在线时间
- 27 小时
|
本帖最后由 马小跳 于 2016-8-22 15:21 编辑
花了几天时间,终于把汉字字库写入到外部Flash中,方便以后每次实验的使用,对于需要大量显示汉字的程序,不用在再把汉字存在内存中,节省CPU。期间也参考了网上别人的想法,外部存储用的是W25Q64,基本思路就是把字库文本通过串口发送的方式写入到Flash中,汉字大小为16*16格式,主要步骤有:
1.字库制作。网上有很多字库编码的软件,也可以用取模软件对汉字取模,下面是我也上传了的一些搜集到的软件。如果是取模软件对汉字取模生成的txt,里面是一系列的16进制代码,需要先滤除掉“逗号、中文注释和0x”,如0xAB,0xA0,需要发送的就只是ABA0...,我上传的有之前别人做好的滤除软件,也有滤除过后的文本,可以直接用来发送,注意用串口发送时要勾选以16进制的格式发送;而直接用字库软件生成的GB2312字库就不需要麻烦,字库生成软件就用原子哥的ts3软件,挺好用,直接将生成的.text发送就行,不需勾选16进制发送。
2.字库发送。 用串口中断方式,每接收到一个数据立即写入到Flash中。282752个数据,波特率最高可设为115200bps,写完用了约25s。占用了flash约277KB。波特率再高貌似就会出现丢失。
3.汉字显示。汉字内码——查找点阵库——获取32位代码(16*16格式汉字)——显示。例如 “国”字 的GB2312码为b9fa,High8bit=0xb9,Low8bit=0xfa,在点阵库的起始地址为:Read Address+(94*(High8bit-0xa1)+(Low8bit-0xa1))*32,往下接着读取32位就是“国”字的32位代码.
附上录得一段结果视频
|
|