高通字库
版本 V1.0 · 更新于 2026-05-23

5. 字库API使用

5.1 获取字库库文件

通过 MindCraft 软件生成字库库文件

推荐用户使用 MindCraft 软件制作库文件,目前 MindCraft 软件仅支持制作使用 Keil5 的 AC5 编译环境下的 ARM32 和 C51 的工程。如果是其他的编译环境,请联系高通字库的技术人员。

MindCraft 字库芯片 Lib 助手界面MindCraft 字库芯片 Lib 助手界面

使用 MindCraft 制作库文件的步骤

  1. 首先打开 MindCraft 软件,点开应用,选择 字库芯片 Lib 助手

  2. 基础设置:

  • 处理器架构选择:根据客户的处理器来选择 ARM 或者 51 架构。
  • 字库型号选择:根据需要选择字库型号。
  • 选择本地编译器路径:ARM 选择 "…/keil/keil32/UV4/UV4.exe",51 选择 "…/keil/keil c51/UV4/UV4.exe"。
  • 库文件生成路径:选择生成的库文件保存的路径。
  • 工程参数导入:在客户提供了工程时选择导入工程的 .uvprojx 文件。导入后下面的配置会自动配置完成。如未提供示例工程则需要手动选择后点击生成文件。
  • 点击 "生成文件",在弹窗点击 "打开生成文件"

MindCraft Windows 版下载
MindCraft 官网
MindCraft 使用视频

5.2 使用字库库文件

字库芯片 API 接口调用说明

推荐用户使用 MindCraft 软件制作库文件,目前 MindCraft 软件仅支持制作使用 Keil5 的 AC5 编译环境下的 ARM32 和 C51 的工程。如果是其他的编译环境,请联系高通字库的技术人员。

MindCraft 生成的资料中,有一个 GTxxxx.hGTxxxx.libGTxxxx.a 文件,将 h 文件和 liba 文件拷贝到项目文件中。将 liba 文件像 c 文件一样添加进入项目工程。

              04_字库API函数接口

                
                101_如何获取高通字库库文件.txt

                
                GT21L16S2Y_readme.txt

                
                GT21L16S2Y.h

                
                GT21L16S2Y.lib

GTxxxx_readme.txt 文件中,写有本字库型号的函数 API 接口使用说明。

font_chip_api.c
/* ===== 字库芯片 API 使用示例 ===== */

#include "gt_font_lib.h"

/* 1. 初始化字库芯片 */
void FontChip_Init(void)

/* 2. 获取字符点阵数据
 *  pchCode  — 字符编码 (GB2312 / Unicode)
 *  pBuf     — 输出缓冲区
 *  fontSize — 点阵大小 (12/16/24/32)
 */
void FontChip_GetChar(uint16_t unicode, uint8_t *pBuf, uint8_t fontSize)

/* 3. 常用 API 函数一览 */
// FontChip_CalcAddr()   — 计算字符在芯片中的存储地址
// FontChip_GetDataLen() — 获取指定字号的点阵数据长度
// ASCII_GetData()       — 获取 ASCII 字符点阵
// GB2312_GetData()      — 获取 GB2312 汉字点阵
// Unicode_GetData()     — 获取 Unicode 字符点阵

5.3 使用示例

完整代码示例:LCD 上显示中英文混合字符

以下示例演示从初始化字库芯片到在 LCD 屏幕上显示中英文混合字符串的完整流程。

main.c
/* ===== 完整示例:在 LCD 上显示汉字 ===== */

#include "gt_font_lib.h"
#include "lcd_driver.h"

void LCD_ShowString(uint16_t x, uint16_t y, const char *str, uint8_t fontSize)
{
  uint16_t unicode;
  uint8_t  buf[256];  // 最大 32×32 点阵 = 128 字节
  uint8_t  i, j;

  while (*str)
  {
    // 1. 获取字符 Unicode
    str = UTF8toUnicode(str, &unicode);

    // 2. 从字库芯片读取点阵
    FontChip_GetChar(unicode, buf, fontSize);

    // 3. 逐行绘制到 LCD
    for (i = 0; i < fontSize; i++)

    }

    x += fontSize;  // 移动到下一个字符位置
  }
}

int main(void)