野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 20360|回复: 4

SPI_FLASH做汉字字库芯片,测试成功

[复制链接]
发表于 2015-5-8 13:57:10 | 显示全部楼层 |阅读模式
首先当然要了解一下字库的存储原理
我用的开发板芯片是STM32 ZET的,液晶用的是93252.8的,flash25Q32
看完原理后
教程开始:
1.      用汉字字模点阵数据批量生成工具生成字库文本,我导入的是GB2312字库
导入后将软件右边的数据拷贝到一个文本中。

12

12

11

11



2.      利用PCtoLCD软件,生成需要的字库取模文件
先设置取模方式,我用的是列行式,逆向,16*16 点阵(一个字占用32字节)
file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image006.jpg
导入文本文件,我生成的是BIN文件

7

7

8

8


file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image008.jpg
3.      来看一下生成的bin文件是否正确
用winhex工具打开bin文件,我选择汉字“啊”做验证,“啊”对应的区位码是1601(区码16,位码01),根据公式:存储地址=((区码-1)*94+位码-1)*32,后面乘的32是一个点阵占用的字节数。那么“啊”的存储地址应该是((16-1)*94+1-1)*32=45120,十六进制位0XB040
file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image010.jpg
              Winhex查看0XB040地址的数据为FE 02 02 FE 00……

10

10

4.      用PC TO LCD软件取“啊”的模,取模方式相同
“啊”的点阵也为FE02 02 FE 00……,说明我们取的要烧录到flash芯片里的数据正确。而且地址也正确。

9

9

file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image012.jpg
5.      烧录生成的bin文件到flash里面,可以通过串口,STM32编写程序将文件写入到FLASH里面,大概十分钟左右。本人在一家电子工厂,自己有烧录器,所以求简单,直接用烧录器烧了。

6

6

5

5


file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image014.jpg
file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image016.jpg
6.      烧好芯片后搭建好实验平台,然后编写代码,烧录到STM32里面:
下面是效果图

3

3

液晶用的是2.8的,9325芯片,液晶驱动函数自己也稍微做了点更改

1

1

寻址扫描显示代码,根据自己的取模方式编写的

4

4

file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image018.jpg
实验平台,没有买一整套的开发板,都是东拼西凑的,主要是没钱

2

2

file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image020.jpg

file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image022.jpg
              
file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image024.jpg

回复

使用道具 举报

发表于 2015-5-8 14:48:55 | 显示全部楼层
谢谢分享,最近我们也做了spi-flash的例程,楼主可以参考下:
http://www.firebbs.cn/thread-8537-1-1.html
回复 支持 反对

使用道具 举报

发表于 2016-8-19 17:34:06 | 显示全部楼层
有没有例程  我想学习一下  借鉴一下945994099@qq.com
回复 支持 反对

使用道具 举报

发表于 2016-8-19 17:43:08 | 显示全部楼层
cool,已高亮,已精华
回复 支持 反对

使用道具 举报

发表于 2016-11-3 16:11:05 | 显示全部楼层
借楼主宝地一用,我怎么把上面你产生的点阵数组转成灰阶的数组?灰阶其实没有其他亮度 就是原来的单色  比如16阶把以前的bit0 改成bit0000,bit1 改成bit1111还是?怎么扩展成灰阶的字库?
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 15:01 , Processed in 0.056444 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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