字库制作

字库制作

在一些场景中,我们需要包含大量汉字,这时候如果只插入字模在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.mdmarkdown文件本工程说明文档,用于介绍工程结构、功能、使用方法等信息。
原理图.pdfPDF文件硬件原理图参考文档,展示本工程涉及的硬件电路设计(如STM32F407与水墨屏、W25Q128是立创开发板上自带的)。
思路整理.mdmarkdown文件本工程写入和读出字模的思路,主要部分!

注意:

位只能从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

仅有一条评论

  1. admin_sprite
    admin_sprite

    测试评论

添加新评论