字库制作
在一些场景中,我们需要包含大量汉字,这时候如果只插入字模在RAM中,会使得RAM空间被极致压缩,非常不方便,
所以,我们可以使用手中的W25Qxx这类常见的存储芯片来存储字模,需要的时候,取出就可以了,大大减少了RAM的空间
GB2312字库和GBK字库的存储和显示
实现方法:
实现:嘉立创F407天空星开发板,2.66寸中景园双色水墨屏
工程介绍:
| 目录/文件 | 类型 | 功能说明 |
|---|---|---|
1-1 F407VGT6工程模板 | 文件夹 | 基于STM32F407VGT6的基础工程模板,包含单片机初始化、外设驱动等基础代码,可作为开发起点。 |
1-2 F407的水墨屏例程 | 文件夹 | 水墨屏(电子纸)驱动例程,实现水墨屏的初始化、显示控制等功能,可直接用于水墨屏的中文显示开发。 |
2-1 GB2312字库中的16字体显示 | 文件夹 | 基于GB2312编码字库,实现16×16字号的中文显示功能,包含字库读取、点阵显示驱动等代码。 |
2-2 GB2312字库中的24字体显示 | 文件夹 | 基于GB2312编码字库,实现24×24字号的中文显示功能,适用于对显示清晰度有更高要求的场景。 |
3-1 GBK字库的16字体显示 | 文件夹 | 基于GBK编码字库(兼容GB2312,支持更多汉字/符号),实现16×16字号显示,支持更丰富的字符集。 |
3-2 GBK字库的24字体显示 | 文件夹 | 基于GBK编码字库,实现24×24字号显示,在GBK字符集下保证显示清晰度。 |
.gitignore | 文本文件 | Git版本控制的忽略规则配置文件,指定无需纳入版本管理的文件/目录。 |
FontMaker.zip | 压缩文件 | 字体制作工具包,可用于自定义提取汉字点阵、生成专属字库,满足个性化显示需求。 |
README.md | markdown文件 | 本工程说明文档,用于介绍工程结构、功能、使用方法等信息。 |
原理图.pdf | PDF文件 | 硬件原理图参考文档,展示本工程涉及的硬件电路设计(如STM32F407与水墨屏、W25Q128是立创开发板上自带的)。 |
| 思路整理.md | markdown文件 | 本工程写入和读出字模的思路,主要部分! |
注意:
位只能从1→0
Flash存储单元的位默认是1(擦除后为0xFF)。页编程只能将1改为0,不能将0改回1(只有擦除操作能重置为1)。
对已编程区域的限制
- 如果页中任何一个地址已经被写过(即存在非
0xFF的数据),后续对该页的页编程操作会静默失败(数据不会更新),即使新写入的数据是针对其他地址的0xFF区域。 - 这是因为页编程实际上是对整个页的“按位与”操作:新数据与原有数据做逻辑与(AND)。若原有数据某位为
0,即使新数据对应位为1,结果仍为0,导致无法更新。
Github仓库
Gypsyold/Font-library: GB2312字库和GBK字库存储和显示
视频教学
bilibili生动的教学视频
https://www.bilibili.com/video/BV1kayJBMEoT?vd_source=6f48ded48d7c0a18e0db3cefa1326637
测试评论