2. 参考资料
2.1 多国语言unicode编码范围
字符集
一、ASCII码编码范围
//ASCII_GetData()
0x20 ~ 0x7F
二、Shift-JIS Unicode编码范围
//Shift_Jis_xx_GetData()
0xFF61UL <= unicode <= 0xFF9FUL
三、拉丁文Unicode编码范围
//LATIN_xx_GetData()
0x0020UL <= unicode <= 0x007FUL0x00A0UL <= unicode <= 0x017FUL0x01A0UL <= unicode <= 0x01CFUL0x01F0UL <= unicode <= 0x01FFUL0x0210UL <= unicode <= 0x021FUL0x1EA0UL <= unicode <= 0x1EFFUL
四、西里尔文Unicode编码范围
//CYRILLIC_xx_GetData()
0x0400UL <= unicode <= 0x045FUL0x0490UL <= unicode <= 0x04FFUL
五、希腊文Unicode编码范围
//GREECE_xx_GetData()
0x0370UL <= unicode <= 0x03CFUL
六、希伯来文Unicode编码范围
//HEBREW_xx_GetData()
0x0590UL <= unicode <= 0x05FFUL0xFB1DUL <= unicode <= 0xFB4FUL
七、阿拉伯文Unicode编码范围
//ALB_xx_GetData()
0x0600UL <= unicode <= 0x06FFUL0xfb50UL <= unicode <= 0xfbffUL0xfe70UL <= unicode <= 0xfeffUL
八、泰文Unicode编码范围
//THAILAND_xx_GetData()
0x0E00UL <= unicode <= 0x0E5FUL
九、天城体(印地文)Unicode编码范围
//Indic_xx_GetData()
0x0900UL <= unicode <= 0x09FFUL
十、高棉文(柬埔寨文)Unicode编码范围
//Khmer_xx_GetData()
Unicode >= 0x1780UL && Unicode <= 0x17DDULUnicode >= 0x17E0UL && Unicode <= 0x17E9ULUnicode >= 0x17F0UL && Unicode <= 0x17F9ULUnicode >= 0x19e0UL && Unicode <= 0x19EFULUnicode >= 0x19F0UL && Unicode <= 0x19FFUL
转码表
一、繁体BIG5编码转GBK编码范围
//BIG52GBK()
- 高字节:
0xA1到0xF9 - 低字节:
0x40到0x7E和0xA1到0xFE
二、Unicode转中文GBK编码范围
//U2G()
unicode <= 0x0451UL && unicode >= 0x00a0ULunicode <= 0x2642UL && unicode >= 0x2010ULunicode <= 0x33d5UL && unicode >= 0x3000ULunicode <= 0x9fa5UL && unicode >= 0x4e00ULunicode <= 0xfe6bUL && unicode >= 0xfe30ULunicode <= 0xff5eUL && unicode >= 0xff01ULunicode <= 0xffe5UL && unicode >= 0xffe0ULunicode <= 0xFA29UL && unicode >= 0xF92CULunicode <= 0xE864UL && unicode >= 0xE816ULunicode <= 0x2ECAUL && unicode >= 0x2E81ULunicode <= 0x49B7UL && unicode >= 0x4947ULunicode <= 0x4DAEUL && unicode >= 0x4C77ULunicode <= 0x3CE0UL && unicode >= 0x3447ULunicode <= 0x478DUL && unicode >= 0x4056ULunicode == 0x1E3fULunicode == 0xE796ULunicode <= 0x2FFBUL && unicode >= 0x2FF0ULunicode <= 0xE793UL && unicode >= 0xE78DULunicode <= 0xE795UL && unicode >= 0xE794UL
三、Unicode转日文JIS0208编码范围
//U2J()
Unicode < 0x07ffUL && Unicode >= 0x0020ULUnicode < 0x27ffUL && Unicode >= 0x2000ULUnicode < 0x30ffUL && Unicode >= 0x3000ULUnicode < 0x33ffUL && Unicode >= 0x3200ULUnicode < 0x9fffUL && Unicode >= 0x4e00ULUnicode <= 0x2B07UL && Unicode >= 0x2B05ULUnicode < 0x2B05UL || Unicode > 0x2B07UL
四、Shift-JIS转日文JIS0208编码范围
//SJIS2JIS()
Code16 >= 0x8140UL && Code16 < 0x8740ULCode16 >= 0xE040UL && Code16 <= 0xEAA4ULCode16 >= 0x8740UL && Code16 <= 0x879CULCode16 > 0x879CUL && Code16 <= 0x9FFCULCode16 >= 0xeeefUL && Code16 <= 0xeef8ULCode16 >= 0xfa40UL && Code16 <= 0xfa49ULCode16 >= 0xfa4aUL && Code16 <= 0xfa53ULCode16 == 0xfa58ULCode16 == 0xfa59ULCode16 == 0xfa5aULCode16 == 0xfa5bUL
五、Unicode转韩文KSC5601编码范围
//U2K()
Unicode <= 0x0451UL && Unicode >= 0x00a1ULUnicode <= 0x266dUL && Unicode >= 0x2015ULUnicode <= 0x33ddUL && Unicode >= 0x3000ULUnicode <= 0xd79dUL && Unicode >= 0xac00ULUnicode <= 0xffffUL && Unicode >= 0xf900UL
2.2 UTF8 转 Unicode
GT30L24A3W 芯片支持的 UTF-8 到 UTF-16 编码转换参考
UTF-8 转 UTF-16 编码函数
高通字库芯片内部使用 UTF-16 编码存储字符。以下函数实现 UTF-8 输入到 UTF-16 的转换, 支持 1/2/3 字节 UTF-8 编码。
/*
功能: UTF-8编码转UTF-16编码
pUTF8: UTF-8编码数据
pUTF16:UTF-16编码数据
return:UTF-16字符的字节长度
*/
unsigned char UTF8toUTF16(unsigned char *pUTF8, unsigned short *pUTF16)
{
unsigned char bytes[3];
unsigned short unicode16;
bytes[0] = *pUTF8++;
if (bytes[0] < 0x80) {
*pUTF16 = bytes[0];
return 1;
}
bytes[1] = *pUTF8++;
if (bytes[0] >= 0xC0 && bytes[0] < 0xE0) {
// 2字节 UTF-8
unicode16 = (bytes[0] & 0x1F) << 6;
unicode16 |= (bytes[1] & 0x3F);
*pUTF16 = unicode16;
return 2;
}
bytes[2] = *pUTF8++;
if (bytes[0] >= 0xE0 && bytes[0] < 0xF0) {
// 3字节 UTF-8
unicode16 = (bytes[0] & 0x0F) << 12;
unicode16 |= (bytes[1] & 0x3F) << 6;
unicode16 |= (bytes[2] & 0x3F);
*pUTF16 = unicode16;
return 3;
}
return 0;
}
UTF-8 转 unicode 编码函数
/**
* utf-8 到 unicode转码
* @param p_utf8 utf8数组
* @param res 返回的unicode编码
* @return utf8字符的字节长度
*/
uint8_t utf8_to_unicode(uint8_t *p_utf8, uint32_t *res)
{
if (p_utf8[0] < 0x80) {
*res = p_utf8[0];
return 1;
} else if (p_utf8[0] < 0xE0) {
*res = ((p_utf8[0] & 0x1F) << 6) | (p_utf8[1] & 0x3F);
return 2;
} else if (p_utf8[0] < 0xF0) {
*res = ((p_utf8[0] & 0x0F) << 12) | ((p_utf8[1] & 0x3F) << 6) | (p_utf8[2] & 0x3F);
return 3;
} else if (0xF0 == (p_utf8[0] & 0xF0)) {
*res = ((p_utf8[0] & 0x07) << 18) | ((p_utf8[1] & 0x3F) << 12) | ((p_utf8[2] & 0x3F) << 6) | (p_utf8[3] & 0x3F);
return 4;
}
return 0;
}
注意事项
- GT30L24A3W 芯片支持 24 种语言的 Unicode 编码范围
- 详细的字符集编码范围请参考 2.1 多国语言unicode编码范围
- 函数已集成在 MindCraft 生成的字库库文件中,可直接调用
2.3 在STM32上使用点阵字库
32 位 MCU 平台驱动高通字库芯片的完整指南
视频资料
- 如何在 32 位 MCU 上使用高通点阵字库 — B站视频
- 高通字库使用教程(1)硬件连接与注意事项 — 抖音
- 高通字库使用教程(2)硬件连接与注意事项 — 抖音
- 高通字库使用教程(3)硬件连接与注意事项 — 抖音
- 高通字库使用教程(4)硬件连接与注意事项 — 抖音
1. 高通字库芯片是什么
高通字库芯片是深圳高通半导体有限公司生产的搭载标准专业字库的 ic 元件。按照搭载的字库是否支持矢量字库,高通字库芯片可划分为点阵字库芯片与矢量字库芯片。本次我们介绍点阵字库芯片的驱动方式。
2. 如何驱动高通点阵字库芯片
2.1 硬件连接
高通字库芯片通常使用 SPI 通讯接口,所以需要与主控 MCU 的硬件 SPI 引脚连接建立硬件 SPI 联系,或者使用 IO 口模拟软件 SPI 方式驱动。需要注意不同型号的字库芯片采用的封装不同导致芯片引脚的排布有差异,在连接时参考字库芯片规格书中的引脚排布图确保引脚正确相连。常用的封装为 SOT23-6、DFN 2×3、DFN8 4×3 以及 SOP8,其对应引脚排布如下:
SOT23-6
SOT23-6 封装引脚图
DFN 2×3
DFN 2x3mm 封装引脚图
DFN8 4×3
DFN8 4x3mm 封装引脚图
SOP8-B
SOP8-B 封装引脚图
我们以正点原子的探索者开发板为例演示驱动过程,该开发板 MCU 采用 STM32F407ZGT6 芯片。该芯片提供 3 个 SPI 通讯接口,开发板本身有一个 SOP8 封装的 W25Q64 的 Flash 芯片与 SPI1 连接,为简化开发进程,我们选择与 Flash 共用 SPI1 接口(即 SCK-PB3、MISO-PB4 以及 MOSI-PB5 引脚共用,通过不同的 CS 片选脚区分 Flash-PB14 与字库芯片-PG7),这样我们可以直接使用正点原子提供的 SPI 接口示例代码。以型号为 GT30L32S4W 的字库芯片为例,该芯片与 Flash 一样为 SOP-8 封装,参照字库芯片规格书和 STM32 开发板 Flash 中的示意图连接好芯片与 MCU 电路。
HOST↔GTXX 连接框图
W25Q64 SPI FLASH 原理图
2.2 软件驱动
在硬件连接完成后进行软件驱动代码的实现,目前高通字库芯片统一使用静态库提供调用接口函数方式调用文字,您在购买字库芯片后,请您联系高通公司的技术支持人员索要符合您编译环境的静态库文件与参考资料。通常提供的资料中包含 .lib 或 .a 后缀的库文件,.h 后缀的接口函数声明头文件以及 .h 的说明文件等参考资料。库文件是 .lib 或 .a 后缀与你使用的编译环境有关,例如我们使用 Keil 软件开发,使用 armcc 编译,故库文件为 .lib 后缀,若使用 gcc 编译则库文件通常为 .a 后缀。在使用上 .lib 或 .a 库文件与 .c 文件是等效的,分别将库文件与 .h 头文件添加到 Keil 工程项目中。
Keil 工程文件组织
📁 HARDWARE/ 📄 GT30L32S4W.lib 📄 led.c 📄 lcd.c 📄 key.c
随后实现 .h 头文件中带有 extern 关键字声明的外部驱动函数(外部函数声明有几个就需要实现几个),即可调用 .h 中声明的接口函数获取字形数据。GT30L32S4W 型号芯片中声明了两个驱动函数:
/* 外部函数声明*/
extern unsigned long r_dat_bat(unsigned long address, unsigned long DataLen, unsigned char *pBuff);
extern unsigned char gt_read_data(unsigned char* sendbuf, unsigned char sendlen, unsigned char* receivebuf, unsigned int receivelen);
GT30L32S4W 型号芯片两个驱动函数的实现,实现方式不唯一,关键在于实现函数功能即可。r_dat_bat 函数是从 address 地址开始读取 DataLen 个字节的数据,存储到 pBuff 中,而 gt_read_data 函数则是先发送 sendlen 个字节的 sendbuf 数据,再接收 receivelen 个字节的数据,存储到 receivebuf 中。实现示例如下(其中的 SPI1_ReadWriteByte 函数为正点原子示例代码实现的 SPI 读取发送函数):
static void SPI_Address(unsigned char AddH, unsigned char AddM, unsigned char AddL)
unsigned char r_dat_bat(unsigned long address, unsigned long r_data_len, unsigned char *p_rbuf)
{
#define _TX_DATA_LEN (4)
unsigned char tx_buf[_TX_DATA_LEN] = {0};
tx_buf[0] = 0x03; //读取数据的命令
tx_buf[1] = (unsigned char)((address & 0xFF0000) >> 16);
tx_buf[2] = (unsigned char)((address & 0x00FF00) >> 8);
tx_buf[3] = (unsigned char)((address & 0x0000FF));
return gt_read_data(tx_buf, _TX_DATA_LEN, p_rbuf, r_data_len);
}
unsigned char gt_read_data(unsigned char * sendbuf, unsigned char sendlen, unsigned char * receivebuf, unsigned int receivelen)
{
unsigned char i;
Rom_csL; //片选选中字库芯片
for (i = 0;i < sendlen;i++) {
SPI1_ReadWriteByte(sendbuf[i]);
}
for (i = 0;i < receivelen;i++) {
receivebuf[i] = SPI1_ReadWriteByte(0x00);
}
Rom_csH; //取消片选
return 0;
}
实现上述底层驱动函数后,如果 .h 头文件中声明有 GT_Font_Init 函数则需要先调用该函数进行字库初始化,没有声明则不需要处理,直接调用接口函数获取字形数据。
/* ----------------------------------------------------------- */
//字库初始化(在调用字形接口前,请务必在初始化SPI 后调用以进行字库初始化)
int GT_Font_Init(void);
/* ---------------------------------------------------- */
2.3 如何使用高通字库接口
在完成上述步骤驱动字库芯片后,按照你所需要的文字编码,传入接口函数中调取,例如调用字母 A,其编码为 ASCII 码 0x41,各接口函数调用说明可以参考资料中提供的 .h 头文件说明文件或者咨询高通公司的技术支持,之后将读取出来的字形数据进行显示即可。
GT_SPI_init(); //字库芯片SPI 初始化
GT_Font_Init(); //初始化字库芯片
ASCII_GetData(0x41, ASCII_8X16, DZ_Data); //调用8*16大小的ASCII编码为0x41即A的字形数据存放于DZ_Data数组中
其中的显示函数参考高通公司技术支持提供的参考文件实现如下,其中 LCD_Fast_DrawPoint 为将某 (x,y) 点设置为相应的颜色,替换为适合本身的描点函数即可。
//横置横排显示
void Display_W(unsigned char * pBits, unsigned int x, unsigned inty, unsigned int widt, unsigned int high)
{
unsigned int i, j, k, n = 0;
unsigned char temp;
{
for (j = 0;j < ((widt + 7) >> 3);j++) {
temp = pBits[n++];
for (k = 0;k < 8;k++) {
if (((temp << k) & 0x80) == 0) {
/* 显示一个像素点 */
LCD_Fast_DrawPoint(x + k + (j * 8), y + i, WHITE);
}
else {
/* 显示一个像素点 */
LCD_Fast_DrawPoint(x + k + (j * 8), y + i, BLACK);
}
}
}
}
}
2.4 如何验证数据正确性
您可以从字库芯片的规格书或者咨询高通公司的技术支持获取验证数据,将读取到的数据与正确数据进行比较验证以确定驱动程序的正确性,上述 GT30L32S4W 型号字库芯片的 8×16 点阵大小的 W 排置(横置横排)的 ASCII 字母 "A" 的正确数据如下(16 进制):
- 排置:W(横置横排) 点阵大小 8×16
- 字母 "A"
- 点阵数据:
00 10 28 28 28 44 44 7C 82 82 82 82 00 00 00 00 - 字符字形效果如下图所示
3. 数据异常自检排查
3.1 排查步骤
若读取数据验证异常,请按以下步骤进行自检排查:
- 查看接口调用说明文件,确保调用接口传入的参数正确。
- 确认是否在初始化 SPI 后调用 GT_Font_Init 函数进行字库初始化,若确实调用,查看 GT_Font_Init 函数返回值是否为非 0,若为 0 则表示字库初始化失败。
- 联系高通公司技术支持人员提供验证数据进行对比验证外部声明函数功能是否正常,如上述 GT30L32S4W 型号的 r_dat_bat 和 gt_read_data 函数。
- 确认芯片引脚是否与 MCU 正确相连,芯片是否存在虚焊现象。
- 有任何其他问题,可咨询高通技术人员提供技术支持。
3.2 初始化和驱动函数是否正常的验证方法
1:GT_Font_Init 返回为 0 及 gt_read_data 函数的解决验证办法:
// 假设GT_Font_Init返回为0
uint8_t tmp_buf[8] = {0};
tmp_buf[0] = 0x9F;
gt_read_data(tmp_buf, 1, tmp_buf, 8); // 验证函数
for(int i =0;i<8;i++)
{
printf("tmp_buf:%x\r\n",tmp_buf[i]);//打印返回的值
}
打印出来的 tmp_buf 里面如果全是 00 或者 FF 则是错误的。里面应该是比较有规律的数字。
2:r_dat_bat() 函数验证方法:
要验证 r_dat_bat() 函数,可以根据不同的芯片型号读取 0xc0/0xb0/0xa0/0x2c0 地址的 16 位数据,并参考以下提供的数据进行对比。如果没有需要的数据,请向 FAE 索要对应型号字库芯片该地址的数据,然后对比读出来的数据是否正确。
以下是各个字库型号的 0xc0/0xb0/0xa0/0x2c0 地址 16 字节数据以及对应型号的地址和地址数据的参考:
| 芯片型号 | 地址 | 16 字节数据 |
|---|---|---|
| GT5DL14P1Y | c0h | 36 49 49 49 36 00 00 00 06 49 49 29 1E 00 00 00 |
| GT5DL14S2Y | c0h | FC 02 02 FC 00 00 01 02 02 01 00 00 00 04 FE 00 |
| GT5DL16M2Y | c0h | 21 72 21 73 21 74 21 75 21 76 21 77 21 78 21 79 |
| GT5DL16S1W | c0h | 00 00 00 00 00 00 0c 60 0c 60 00 00 00 00 00 00 |
| GT5DL24A1Y80 | c0h | 00 00 E0 30 18 18 FE 18 18 10 E0 00 00 00 00 00 |
| GT5DL24A2W | c0h | 70 88 88 70 88 88 70 00 70 88 88 78 08 10 60 00 |
| GT5DL28K2W | b0h | CE 00 7B 00 00 00 00 03 00 00 C0 00 C0 00 C0 00 |
| GT5DL32A3W | c0h | 70 88 88 70 88 88 70 00 70 88 88 78 08 10 60 00 |
| GT5SDL24A40 | c0h | 00 05 00 00 06 00 11 05 00 00 06 00 22 05 00 00 |
| GT5SL24K3W40 | c0h | 68 B0 01 02 78 B0 01 02 88 B0 01 03 A0 B0 01 02 |
| GT5SL24K4W | c0h | 70 88 88 70 88 88 70 00 70 88 88 78 08 10 60 00 |
| GT5SLAD2E1A | c0h | 63 15 00 00 06 00 81 15 00 00 06 00 9F 15 00 00 |
| GT5SLAD3BFA | c0h | 63 15 00 00 06 00 81 15 00 00 06 00 9E 15 00 00 |
| GT5SLCD2E1A | c0h | F7 04 00 00 06 00 08 05 00 00 06 00 19 05 00 00 |
| GT5SLCD2S2A | c0h | 63 15 00 00 06 00 81 15 00 00 06 00 9F 15 00 00 |
| GT5SLCD2S4A | c0h | 68 B0 01 02 78 B0 01 02 88 B0 01 03 A0 B0 01 02 |
| GT5SUAD2E | c0h | 7C 49 01 02 8C 49 01 02 9C 49 01 03 B4 49 01 02 |
| GT5SUAD3BFA | c0h | 63 15 00 00 06 00 81 15 00 00 06 00 9F 15 00 00 |
| GT5SUCD2E1A | c0h | E7 04 00 00 06 00 08 05 00 00 06 00 19 05 00 00 |
| XT5YL14U1Y | c0h | 36 49 49 49 36 00 00 00 06 49 49 29 1E 00 00 00 |
| GT5YL24A1Y520 | c0h | 00 00 E0 30 18 18 FE 18 18 10 E0 00 00 00 00 00 |
| GT24L24A2Y | c0h | 36 49 49 49 36 00 00 00 06 49 49 29 1E 00 00 00 |
| GT20L16J1Y | b0h | 00 00 00 00 00 00 00 03 03 00 00 00 00 00 00 00 |
| GT20L16P1Y | c0h | 00 00 00 00 00 00 00 00 00 00 16 0E 00 00 00 00 |
| GT20L16S1Y | c0h | 00 00 00 00 18 18 00 00 00 18 18 00 00 00 00 00 |
| GT20L24F6Y | c0h | 36 49 49 49 36 00 00 00 06 49 49 29 1E 00 00 00 |
| GT21L16S2W | c0h | 00 00 00 00 00 00 0C 60 0C 60 00 00 00 00 00 00 |
| GT21L16S2Y | c0h | 00 00 00 00 18 18 00 00 00 18 18 00 00 00 00 00 |
| GT21L16T1W | c0h | 00 00 00 00 00 00 0C 60 0C 60 00 00 00 00 00 00 |
| GT21L24S1W | c0h | 10 40 00 10 40 00 10 40 00 08 80 00 07 00 00 00 |
| GT22L16A1Y | c0h | 36 49 49 49 36 00 00 00 06 49 49 29 1E 00 00 00 |
| GT22L16A2Y | c0h | 36 49 49 49 36 00 00 00 06 49 49 29 1E 00 00 00 |
| GT22L16K1Y40 | c0h | 36 49 49 49 36 00 00 00 06 49 49 29 1E 00 00 00 |
| GT22L16M1Y | c0h | 36 49 49 49 36 00 00 00 06 49 49 29 1E 00 00 00 |
| GT22L16U1Y | c0h | 36 49 49 49 36 00 00 00 06 49 49 29 1E 00 00 00 |
| GT22L16V2Y | c0h | 36 49 49 49 36 00 00 00 06 49 49 29 1E 00 00 00 |
| GT22L24S3W | c0h | 70 88 88 70 88 88 70 00 70 88 88 78 08 10 60 00 |
| GT22U16A2Y | c0h | 36 49 49 49 36 00 00 00 06 49 49 29 1E 00 00 00 |
| GT23L16U2Y | c0h | 36 49 49 49 36 00 00 00 06 49 49 29 1E 00 00 00 |
| GT24L16A2Y | c0h | 36 49 49 49 36 00 00 00 06 49 49 29 1E 00 00 00 |
| GT24L16K1Y | c0h | 36 49 49 49 36 00 00 00 06 49 49 29 1E 00 00 00 |
| GT24L16M1Y20 | c0h | 36 49 49 49 36 00 00 00 06 49 49 29 1E 00 00 00 |
| GT24L24A2W | c0h | 00 00 00 E0 10 08 08 08 10 E0 00 00 00 00 00 00 |
| GT24L24A2Y | c0h | 36 49 49 49 36 00 00 00 06 49 49 29 1E 00 00 00 |
| GT24L32M4W80 | c0h | 70 88 88 70 88 88 70 00 70 88 88 78 08 10 60 00 |
| GT24U24A2Y | c0h | 36 49 49 49 36 00 00 00 06 49 49 29 1E 00 00 00 |
| GT30L16M2Y | c0h | 00 40 30 1C 17 12 90 70 38 10 00 00 00 00 00 01 |
| GT30L16U2W | c0h | 18 00 04 00 0A 00 31 80 C0 60 00 00 7E C0 01 80 |
| GT30L24A2W | c0h | 0C IC 10 10 10 10 10 1F OF 00 00 00 00 0A 80 C0 |
| GT30L24A3W | c0h | 18 C0 00 18 C0 00 18 C0 00 0F 80 00 07 00 00 00 |
| GT30L24M1W | c0h | 10 40 00 10 40 00 10 40 00 08 80 00 07 00 00 00 |
| GT30L24M1Z | a0h | 40 10 00 40 10 00 40 10 00 80 08 00 00 07 00 00 |
| GT30L24T3Y | c0h | 00 40 30 1C 17 12 90 70 38 10 00 00 00 00 00 01 |
| GT30L32A1W80 | d0h | 0c 00 00 00 03 00 00 00 01 CO 00 00 00 E0 00 00 |
| GT30L32M4W80 | c0h | 70 88 88 70 88 88 70 00 70 88 88 78 08 10 60 00 |
| GT30L32S4W | c0h | 08 00 0C 00 18 00 10 80 3E CO 21 80 41 00 02 00 |
| GT30L32S4Y | c0h | 00 40 30 1C 17 12 90 70 38 10 00 00 00 00 00 01 |
| GT31L16M1Y80 | c0h | 36 49 49 49 36 00 00 00 06 49 49 29 1E 00 00 00 |
| GT31L16S2W80 | c0h | 36 49 49 49 36 00 00 00 06 49 49 29 1E 00 00 00 |
| GT31L24M1W16 | c0h | 10 40 00 10 40 00 10 40 00 08 80 00 07 00 00 00 |
| GT31L24M3W40 | c0h | 70 88 88 70 88 88 70 00 70 88 88 78 08 10 60 00 |
| GT32L24A180 | c0h | 10 40 00 10 40 00 10 40 00 08 80 00 07 00 00 00 |
| GT32L24F0210 | c0h | 36 49 49 49 36 00 00 00 06 49 49 29 1E 00 00 00 |
| GT32L24M1Y80 | c0h | 00 00 07 0F 18 30 30 30 18 0F 07 00 00 00 00 00 |
| GT32L24M0140 | c0h | 70 88 88 70 88 88 70 00 70 88 88 78 08 10 60 00 |
| GT32L32M4W40 | c0h | 70 88 88 70 88 88 70 00 70 88 88 78 08 10 60 00 |
| GT32L32M0180 | c0h | 70 88 88 70 88 88 70 00 70 88 88 78 08 10 60 00 |
| GT32L32S0140 | c0h | 70 88 88 70 88 88 70 00 70 88 88 78 08 10 60 00 |
| GT60L16M2K4 | c0h | 00 00 00 00 00 00 00 00 00 18 18 18 30 00 00 00 |
| GT60M2 | c0h | 68 B0 01 02 78 B0 01 02 88 B0 01 03 A0 B0 01 02 |
| GT61L24M3K4 | c0h | 00 00 00 00 00 00 00 00 00 18 18 18 30 00 00 00 |
| XT21L12S1Y12 | c0h | c0 02 C0 01 00 00 00 00 00 00 20 00 20 00 20 00 |
| XT21L12S1Y40 | c0h | c0 02 C0 01 00 00 00 00 00 00 20 00 20 00 20 00 |
| XT21L20S2W60 | 2c0h | 00 00 00 00 00 00 00 00 00 00 00 30 30 10 20 00 |
| XT30L24M1W | c0h | 10 40 00 10 40 00 10 40 00 08 80 00 07 00 00 00 |
2.4 技术支持视频列表
深圳高通官方技术支持视频合辑,涵盖字库芯片使用 / GT-HMI 开发 / Fontlab 工具。
- 高通技术支持视频合辑(全部) — B站频道入口
● 高通字库芯片官方技术资料
- 深入解析嵌入式系统中的中文显示字库
- 如何在 32 位 MCU 上使用高通点阵字库
- 高通矢量字库芯片在 32 位 MCU 上的应用实践
- 嵌入式多国语言点阵字库显示解决方案及应用实践
- 嵌入式字库特效展示与实现
- 嵌入式多国语言矢量字库显示解决方案及应用实践
● 高通 GT-HMI 技术资料
- GT-HMI 第一章 — 软件安装与工程创建
- GT-HMI 第二章 — 简单工程的制作
- GT-HMI 第三章 — 控件介绍(上)
- GT-HMI 第四章 — 控件介绍(下)
- GT-HMI 第五章 — 事件交互介绍
- GT-HMI 第六章 — 下位机工程移植
- 如何在 GT-HMI 上使用高通字库
- GUI-LCD:嵌入式 GUI 开发极简化
- 五步教你设计串口屏,5 分钟快速上手
- 高通 GUI-LCD 实际案例操作
- GT-HMI 3.5 寸工控界面工程文件制作
- GT-HMI 2.8 寸微波炉工程文件制作
● 高通 Fontlab 字库工具
GT-HMI Designer 最新版本下载:MindCraft

