用字模生成的GN2312文件可以直接以bin文件形式写入吗
用pctocld生成GB2312字库,生成de xxx.fon文件,本质是二进制文件,那么用串口通信把这个.fon文件写入到外部spl flash,然后单片机用编码取值公式计算要取出的汉字。有个疑问,这个fon文件的头部是直接是汉子第一个编码吗,还是还有文件头信息?xxx.fon 可能有文件头,建议先用 hex 工具看看前几个字节是什么,确认数据结构。 GB2312 字库一般是按 16x16 或 24x24 点阵存储的,最好看看 pctocld 生成的格式,有可能有额外信息。 直接 bin 方式写入 SPI Flash 没问题,但要保证单片机读取时能正确解析,先手动读取前几字节试试。 你是用 STM32F4 直接访问 SPI Flash 还是通过 文件系统?如果是裸读写,要特别注意字库数据的存储偏移。 这个 fon 文件用 Hextool 或 UltraEdit 打开,看看开头是不是 汉字编码,有些字库会有 索引表 之类的头部信息。 GB2312 码是 双字节 编码,取值公式计算出来的偏移地址要和 fon 文件格式对应,不然取出的字模可能错位。 pctocld 生成的 FON 文件不一定是 纯点阵数据,可能会带一些额外的 字模描述信息,建议看看官方文档说明。 你要用 串口 写 SPI Flash,建议先小规模测试,比如写 一个汉字的字模数据,然后手动读出来对比。 STM32F4 访问 SPI Flash 是用 QSPI 还是 普通 SPI?不同方式的 寻址方式 可能会影响数据读取。 直接 bin 方式存储 FON 文件没问题,但要保证 STM32 代码能正确解析,最好写个小工具先验证格式。
页:
[1]