6.API接口说明及使用
6.1.点阵字库API接口(此处以字库GT30L24A3W为例)
注意:中文使用GB2312、GBK、GB18030编码,日文使用JIS0208编码,韩文使用KSC5601编码,其他国家都是Unicode编码。以下是字符编码集的链接,可以查找:https://www.mindcraft.com.cn/activity/client/decode
6.1.1.ASCII的API调用
该函数使用的是Unicode编码调用ascii字符。获取到的字符数据会存储到用户定义的数组中。用户可以将数组里的数据与规格书中展示的参考数据进行对比是否相同。下文展示了GT30L24A3W规格书中展示的参考数据,如图所示:
/*************************************************************
函数用法:
unsigned char DZ_Data[数组长度客户自定义];
ASCII_GetData(0x41,ASCII_5X7,DZ_Data); //读取5X7点阵 ASCII编码A的点阵数据,并将点阵数据存在DZ_Data数组中;数据长度为8 BYTE
ASCII_GetData(0x41,ASCII_7X8,DZ_Data); //读取7X8点阵 ASCII编码A的点阵数据,并将点阵数据存在DZ_Data数组中;数据长度为8 BYTE
ASCII_GetData(0x41,ASCII_6X12,DZ_Data); //读取6X12点阵 ASCII编码A的点阵数据,并将点阵数据存在DZ_Data数组中;数据长度为12 BYTE
ASCII_GetData(0x41,ASCII_12_A,DZ_Data); //读取12X12点阵 ASCII编码A的点阵数据,并将点阵数据存在DZ_Data数组中;数据长度为26 BYTE
ASCII_GetData(0x41,ASCII_8X16,DZ_Data); //读取8X16点阵 ASCII编码A的点阵数据,并将点阵数据存在DZ_Data数组中;数据长度为16 BYTE
ASCII_GetData(0x41,ASCII_12X24_A,DZ_Data); //读取12X24点阵 ASCII编码A的点阵数据,并将点阵数据存在DZ_Data数组中;数据长度为48 BYTE
ASCII_GetData(0x41,ASCII_12X24_P,DZ_Data); //读取12X24点阵 ASCII编码A的点阵数据,并将点阵数据存在DZ_Data数组中;数据长度为48 BYTE
ASCII_GetData(0x41,ASCII_16_A,DZ_Data); //读取16X16点阵 ASCII编码A的点阵数据,并将点阵数据存在DZ_Data数组中;数据长度为32 BYTE
ASCII_GetData(0x41,ASCII_16X32,DZ_Data); //读取16X32点阵 ASCII编码A的点阵数据,并将点阵数据存在DZ_Data数组中;数据长度为64 BYTE
ASCII_GetData(0x41,ASCII_24_B,DZ_Data); //读取24X24点阵 ASCII编码A的点阵数据,并将点阵数据存在DZ_Data数组中;数据长度为74 BYTE
ASCII_GetData(0x41,ASCII_32_B,DZ_Data); //读取32X32点阵 ASCII编码A的点阵数据,并将点阵数据存在DZ_Data数组中;数据长度为128 BYTE
*************************************************************/
unsigned char ASCII_GetData(unsigned char ASCIICode,unsigned long ascii_kind,unsigned char* DZ_Data);

其余各型号验证数据如下
| 型号 | 排置 | 点阵大小 | 字母 | 代码示例 | 点阵数据 |
|---|---|---|---|---|---|
| GT20L16J1Y | 竖置横排 | 8X16 | A | ASCII_GetData(0x41,DZ_Data); | E0 F0 98 8C 98 F0 E0 00 0F 0F 00 00 00 0F 0F 00 |
| GT20L16S1Y | 竖置横排 | 8X16 | A | ASCII_GetData(0x41, | E0 F0 98 8C 98 F0 E0 00 0F 0F 00 00 00 0F 0F 00 |
| GT20L24F6Y | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 E0 9C 82 9C E0 00 00 0F 00 00 00 00 00 0F 00 |
| GT21L16S2W | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 10 28 28 28 44 44 7C 82 82 82 82 00 00 00 00 |
| GT21L16S2Y | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 E0 9C 82 9C E0 00 00 0F 00 00 00 00 00 0F 00 |
| GT21L16T1W | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 10 28 28 28 44 44 7C 82 82 82 82 00 00 00 00 |
| GT21L24S1W | 横置横排 | 12X24 | A | ASCII_GetData(0X41, | 00 00 06 00 06 00 06 00 0B 00 0B 00 0B 00 11 80 |
| GT22L16A1Y | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 00 E0 10 E0 00 00 00 78 07 04 04 04 07 78 00 |
| GT22L16A1Y16 | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT22L16A1Y20 | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 00 E0 10 E0 00 00 00 78 07 04 04 04 07 78 00 |
| GT22L16A2Y | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT22L16K1Y20 | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT22L16K1Y40 | 竖置横排 | 8X16 | A | ASCII_GetData_K1Y40(0X41, | 00 00 E0 10 E0 00 00 00 78 07 04 04 04 07 78 00 |
| GT22L16M1Y | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT22L16M1Y24 | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT22L16U1Y40 | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT22L16V2Y | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT22L24S3W | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 10 28 28 28 44 44 7C 82 82 82 82 00 00 00 00 |
| GT22U16A1Y16 | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT22U16A2Y | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT22U16A2Y32 | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT23L16U2Y | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT24L16A1Y | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT24L16A1Y40 | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT24L16A1Y80 | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT24L16A2Y | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT24L16A2Y20 | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT24L16K1Y | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT24L16M1Y20 | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | E0 F0 98 8C 98 F0 E0 00 0F 0F 00 00 00 0F 0F 00 |
| GT24L16U1Y40 | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 00 00 10 28 28 28 44 44 7C 82 82 82 82 00 00 |
| GT24L24A2W-SK | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 07 0F 19 31 19 0F 07 00 F0 F0 00 00 00 F0 F0 00 |
| GT24L24A2W16 | 横置横排 | 6X12 | A | ASCII_GetData(0X41, | 00 20 20 50 50 70 88 88 88 00 00 00 |
| GT24L24A2Y | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT24L24A2Y16 | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT24L32M4W80 | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 00 10 38 6C C6 C6 FE C6 C6 C6 C6 00 00 00 00 |
| GT24U16A1Y240 | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT24U16A1Y560 | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT24U24A2Y | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT30L16M2Y | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 E0 9C 82 9C E0 00 00 0F 00 00 00 00 00 0F 00 |
| GT30L16U2W | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 10 28 28 28 44 44 7C 82 82 82 82 00 00 00 00 |
| GT30L24A3W | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 00 10 38 6C C6 C6 FE C6 C6 C6 C6 00 00 00 00 |
| GT30L24A3W-DL | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 00 10 10 28 28 44 7C 7C 82 82 82 00 00 00 00 |
| GT30L24A3W-DL8 | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 00 10 10 28 28 44 7C 7C 82 82 82 00 00 00 00 |
| GT30L24A3W32 | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 00 10 38 6C C6 C6 FE C6 C6 C6 C6 00 00 00 00 |
| GT30L24M1W | 横置横排 | 12X24 | A | ASCII_GetData(0X41, | 00 00 06 00 06 00 06 00 0B 00 0B 00 0B 00 11 80 |
| GT30L24M1Z | 竖置竖排 | 12X24 | A | ASCII_GetData(0X41, | 00 00 04 00 80 07 00 78 04 80 0F 04 70 08 00 0E |
| GT30L24T3Y | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 E0 9C 82 9C E0 00 00 0F 00 00 00 00 00 0F 00 |
| GT30L32A1W80 | 横置横排 | 16X32 | A | ASCII_GetData(0X41, | 00 00 00 00 00 00 00 00 00 00 03 80 03 80 03 80 |
| GT30L32S2W20 | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 10 28 28 28 44 44 7C 82 82 82 82 00 00 00 00 |
| GT30L32S4W | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 10 28 28 28 44 44 7C 82 82 82 82 00 00 00 00 |
| GT30L32S4Y | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 E0 9C 82 9C E0 00 00 0F 00 00 00 00 00 0F 00 |
| GT31L16M1Y80 | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT31L16S2W80 | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 10 28 28 28 44 44 7C 82 82 82 82 00 00 00 00 |
| GT31L24M1W16 | 横置横排 | 12x24 | A | ASCII_GetData(0X41, | 00 00 06 00 06 00 06 00 0B 00 0B 00 0B 00 11 80 |
| GT31L24M3W40 | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 00 10 38 6C C6 C6 FE C6 C6 C6 C6 00 00 00 00 |
| GT32L24A180 | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT32L24F0210 | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT32L24M0140 | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 10 28 28 28 44 44 7C 82 82 82 82 00 00 00 00 |
| GT32L32M0180 | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 10 28 28 28 44 44 7C 82 82 82 82 00 00 00 00 |
| GT32L32M4W40 | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 00 10 38 6C C6 C6 FE C6 C6 C6 C6 00 00 00 00 |
| GT32L32M4W40-WH | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 00 10 38 6C C6 C6 FE C6 C6 C6 C6 00 00 00 00 |
| GT32L32S0140 | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 10 28 28 28 44 44 7C 82 82 82 82 00 00 00 00 |
| GT32L32S0140-LT | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 10 28 28 28 44 44 7C 82 82 82 82 00 00 00 00 |
| GT32W32S0140 | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 10 28 28 28 44 44 7C 82 82 82 82 00 00 00 00 |
| GT5DL14S2Y | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 E0 9C 82 9C E0 00 00 0F 00 00 00 00 00 0F 00 |
| GT5DL16M2Y | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 E0 9C 82 9C E0 00 00 0F 00 00 00 00 00 0F 00 |
| GT5DL24A1Y80 | 竖置横排 | 12X24 | A | ASCII_GetData(0X41, | 00 00 00 00 80 70 7E 70 80 00 00 00 00 00 00 00 |
| GT5DL24A2W | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 10 28 28 28 44 44 7C 82 82 82 82 00 00 00 00 |
| GT5DL24A2W-YZ | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 10 28 28 28 44 44 7C 82 82 82 82 00 00 00 00 |
| GT5DL24A2W32 | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 10 28 28 28 44 44 7C 82 82 82 82 00 00 00 00 |
| GT5DL24A2W96 | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 10 28 28 28 44 44 7C 82 82 82 82 00 00 00 00 |
| GT5DL24F1Y240 | 竖置横排 | 12X24 | A | ASCII_GetData(0X41, | 00 00 00 80 70 0E 7E F0 80 00 00 00 00 00 00 00 |
| GT5DL24F2W | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 00 10 10 28 28 44 7C 7C 82 82 82 00 00 00 00 |
| GT5DL24M1W80-PCCX | 横置横排 | 12X24 | A | LATIN_12X24_GetData(0x41,DZ_Data); | 00 00 00 00 00 00 04 00 04 00 0E 00 0E 00 0E 00 |
| GT5DL28K2W-YH | 横置横排 | 12x12_A_NW | A | GT_GetASCII(0X41, | 00 08 00 00 38 00 38 00 6C 00 6C 00 6C 00 6C 00 |
| GT5DL32A3W | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 00 10 38 6C C6 C6 FE C6 C6 C6 C6 00 00 00 00 |
| GT5DL32A3W-LZY | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 00 10 38 6C C6 C6 FE C6 C6 C6 C6 00 00 00 00 |
| GT5DL32A3W64 | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 00 10 38 6C C6 C6 FE C6 C6 C6 C6 00 00 00 00 |
| GT5DL32K1W96 | 横置横排 | 16x32 | A | GT_GetASCII(0X41, | 00 00 00 00 01 80 03 80 02 C0 02 C0 06 C0 04 E0 |
| GT5DU24F2W32 | 横置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 00 10 10 28 28 44 7C 7C 82 82 82 00 00 00 00 |
| GT5HL16S2W | 横置横排 | 12x12 | A | ASCII_GetData(0X41, | 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| GT5HL20K2W | 横置横排 | 12x12 | A | ASCII_GetData(0X41, | 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| GT5HL24A2W | 横置横排 | 12x12 | A | GT_GetASCII(0X41, | 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| GT5HL32S3W | 横置横排 | 12x12 | A | ASCII_GetData(0X41, | 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
| GT5SDL24A40 | 横置横排 | 16X16 | A | get_font(pBits, | 00 00 00 00 00 00 0C 00 14 00 16 00 32 00 22 00 |
| GT5SDL32A | 横置横排 | 16X16 | A | get_font(pBits, | 00 00 00 00 00 00 0C 00 14 00 16 00 32 00 22 00 |
| GT5SDL32A32 | 横置横排 | 16X16 | A | get_font(pBits, | 00 00 00 00 00 00 0C 00 14 00 16 00 32 00 22 00 |
| GT5SDL32A96 | 横置横排 | 16X16 | A | get_font(pBits, | 00 00 00 00 00 00 0C 00 14 00 16 00 32 00 22 00 |
| GT5SDU32A | 横置横排 | 16X16 | A | get_font(pBits, | 00 00 00 00 00 00 0C 00 14 00 16 00 32 00 22 00 |
| GT5SL24K4W | 横置横排 | 16X16 | A | get_font(pBits, | 00 00 00 00 00 00 0C 00 14 00 16 00 32 00 22 00 |
| GT5SL24K4W32 | 横置横排 | 16X16 | A | get_font(pBits, | 00 00 00 00 00 00 0C 00 14 00 16 00 32 00 22 00 |
| GT5SLAD2E-1A | 横置横排 | 16X16 | A | get_font(pBits,VEC_FT_ASCII_STY,0x41,16, 16, 16); | 00 00 00 00 00 00 0C 00 14 00 16 00 32 00 22 00 |
| GT5SLAD3B-FA | 横置横排 | 16X16 | A | get_font(pBits,VEC_FT_ASCII_STY,0x41,16, 16, 16); | 00 00 00 00 00 00 0C 00 14 00 16 00 32 00 22 00 |
| GT5SLAD3B-FA-QTW | 横置横排 | 16X16 | A | get_font(pBits,VEC_FT_ASCII_STY,0x41,16, 16, 16); | 00 00 00 00 00 00 0C 00 14 00 16 00 32 00 22 00 |
| GT5SLAD3B-FA-XG | 横置横排 | 16X16 | A | get_font(pBits,VEC_FT_ASCII_STY,0x41,16, 16, 16); | 00 00 00 00 00 00 0C 00 14 00 16 00 32 00 22 00 |
| GT5SLCD2E-1A | 横置横排 | 16X16 | A | get_font(pBits,VEC_FT_ASCII_STY,0x41,16, 16, 16); | 00 00 00 00 00 00 0C 00 14 00 16 00 32 00 22 00 |
| GT5SLCD2E-1A-BS | 横置横排 | 16X16 | A | get_font(pBits,VEC_FT_ASCII_STY,0x41,16, 16, 16); | 00 00 00 00 00 00 0C 00 14 00 16 00 32 00 22 00 |
| GT5SLCD2S-2A | 横置横排 | 16X16 | A | get_font(pBits,VEC_FT_ASCII_STY,0x41,16, 16, 16); | 00 00 00 00 00 00 0C 00 14 00 16 00 32 00 22 00 |
| GT5SLCD2S-4A | 横置横排 | 16X16 | A | get_font(pBits,VEC_FT_ASCII_STY,0x41,16, 16, 16); | 00 00 00 00 00 00 0C 00 14 00 16 00 32 00 22 00 |
| GT5SLFD4B-FA-XG | 横置横排 | 16X16 | A | get_font(pBits,VEC_FT_ASCII_STY,0x41,16, 16, 16); | 00 00 00 00 00 00 0C 00 14 00 16 00 32 00 22 00 |
| GT5SUAD3B-FA | 横置横排 | 16X16 | A | get_font(pBits,VEC_FT_ASCII_STY,0x41,16, 16, 16); | 00 00 00 00 00 00 0C 00 14 00 16 00 32 00 22 00 |
| GT5SUCD2E-1A | 横置横排 | 16X16 | A | get_font(pBits,VEC_FT_ASCII_STY,0x41,16, 16, 16); | 00 00 00 00 00 00 0C 00 14 00 16 00 32 00 22 00 |
| GT5SW24K4W | 横置横排 | 16X16 | A | get_font(pBits, | 00 00 00 00 00 00 0C 00 14 00 16 00 32 00 22 00 |
| GT5YL24A1Y200 | 竖置横排 | 12X24 | A | ASCII_GetData(0X41, | 00 00 00 00 80 70 7E 70 80 00 00 00 00 00 00 00 |
| GT5YL24A1Y520 | 竖置横排 | 12X24 | A | ASCII_GetData(0X41, | 00 00 00 00 80 70 7E 70 80 00 00 00 00 00 00 00 |
| GT5YL24A2Y48 | 竖置横排 | 8X16 | A | ASCII_GetData(0X41, | 00 80 70 08 70 80 00 00 3C 03 02 02 02 03 3C 00 |
| GT60L16M2K4 | 横置横排 | 16X16 | A | get_font(pBits, | 00 00 00 00 00 00 0C 00 14 00 16 00 32 00 22 00 |
| GT60M2 | 横置横排 | 16X16 | 啊 | get_font(pBits, | 00 00 0E FC EA 08 AA 08 AA E8 AA A8 AC A8 AA A8 |
| GT60M2-64 | 横置横排 | 16X16 | 啊 | get_font(pBits, | 00 00 0E FC EA 08 AA 08 AA E8 AA A8 AC A8 AA A8 |
| GT60M2-LTF64 | 横置横排 | 16X16 | 啊 | get_font(pBits, | 00 00 0E FC EA 08 AA 08 AA E8 AA A8 AC A8 AA A8 |
| GT61L24M3K4 | 横置横排 | 16X16_A | A | GT_GetASCII(0X41, | 00 00 00 00 00 00 0E 00 0E 00 1B 00 1B 00 1B 00 |
6.1.2.中文的API调用
使用中文的API之前,可以通过MindCraft(高通智匠)的“字符编码查询器”中查询中文的GB2312、GBK以及GB18030编码。按照图3-1中的顺序操作即可。

图3-1 SDK开发包生成目录
以下为具体的中文API函数。第一个参数MSB表示编码的高字节,第二个参数LSB表示编码的低字节。
/*************************************************************
函数用法:
unsigned char DZ_Data[数组长度客户自定义];
gt_12_GetData(0xb0,0xa1,DZ_Data); //读取12X12点阵汉字“啊”的点阵数据,并将点阵数据存在DZ_Data数组中;数据长度为24 BYTE
*************************************************************/
void gt_12_GetData (unsigned char MSB,unsigned char LSB,unsigned char *DZ_Data);
如果要调用的中文编码在GBK范围内,则要使用:
/*************************************************************
函数用法:
unsigned char DZ_Data[数组长度客户自定义];
GBK_24_GetData(0xb0,0xa1,DZ_Data); //读取24X24点阵汉字“啊”的点阵数据,并将点阵数据存在DZ_Data数组中;数据长度为72 BYTE
*************************************************************/
unsigned long GBK_24_GetData (unsigned char c1, unsigned char c2,unsigned char *DZ_Data);
6.1.3.拉丁文的API调用
使用拉丁文的API函数前,可以通过MindCraft(高通智匠)的“字符编码查询器”查询拉丁文的Unicode编码。按照图3-2中的顺序操作即可。

图3-2
图3-2拉丁文包括大多数的欧美国家语言。例如:英语,法语,德语,西班牙语,葡萄牙语,荷兰语等。该函数使用的是Unicode编码调用文字。如果要用到希腊语或者东欧国家的文字,需要调用其他的API接口。此处调用的是拉丁文8x16字号大小,其他字号的调用方式同理。
/*************************************************************
函数用法:
unsigned char DZ_Data[数组长度客户自定义];
LATIN_8X16_GetData(0xa5,DZ_Data); //读取8X16点阵拉丁文编码0xa5的点阵数据,并将点阵数据存在DZ_Data数组中;数据长度为16 BYTE
*************************************************************/
unsigned long LATIN_8X16_GetData(unsigned int FontCode,unsigned char *DZ_Data);
6.1.4.西里尔文的API调用
西里尔文包括部分东欧国家语言,例如俄罗斯,塞维利亚,乌克兰,蒙古等国家语言。该函数使用的是Unicode编码调用文字。西里尔文的编码查询参考“2.5、编码查询”章节,获取Unicode编码。此处调用的是西里尔文8x16字号大小,其他字号的调用方式同理。
/*************************************************************
函数用法:
unsigned char DZ_Data[数组长度客户自定义];
CYRILLIC_8X16_GetData(0x405,DZ_Data);
//读取8X16点阵西里尔文编码0x405的点阵数据,并将点阵数据存在DZ_Data数组中;数据长度为16 BYTE
*************************************************************/
unsigned long CYRILLIC_8X16_GetData(unsigned int FontCode,unsigned char *DZ_Data);
6.1.5.希腊文的API调用
希腊文适用于希腊。该函数使用的是Unicode编码调用文字。希腊文的编码查询参考“2.5、编码查询”章节,获取Unicode编码。此处调用的是8x16字号大小的希腊文,其他字号大小调用方式同理。
/*************************************************************
函数用法:
unsigned char DZ_Data[数组长度客户自定义];
GREECE_8X16_GetData(0x375, DZ_Data);
//读取8X16点阵希腊文编码0x375的点阵数据,并将点阵数据存在DZ_Data数组中;数据长度为 16 BYTE
*************************************************************/
unsigned long GREECE_8X16_GetData(unsigned int FontCode, unsigned char *DZ_Data);
6.1.6.希伯来的API调用
希伯来文适用于部分中东国家。如以色列,该函数使用的是Unicode编码调用文字。希伯来文的编码查询参考“2.5、编码查询”章节,获取Unicode编码。此处调用的是8x16字号大小的希伯来文,其他字号大小调用方式同理。
/*************************************************************
函数用法:
unsigned char DZ_Data[数组长度客户自定义];
HEBREW_8X16_GetData(0x595, DZ_Data);
//读取8X16点阵希伯来文编码0x375的点阵数据,并将点阵数据存在DZ_Data数组中;数据长度为 16 BYTE
*************************************************************/
unsigned long HEBREW_8X16_GetData(unsigned int FontCode, unsigned char *DZ_Data);
6.1.7.日文的API调用
该函数使用的是JIS2080编码调用文字。日文的编码查询可以通过下方链接查询对应的JIS0208编码:https://download.gaotongfont.cn/GT_Font_Chip/Encoding_table/JISx0208.pdf 此处调用的是16x16字号大小的日文,其他字号大小调用方式同理。第一个参数MSB表示编码的高字节,第二个参数LSB表示编码的低字节。注意JIS0208编码进制为10进制。
/*************************************************************
函数用法:
unsigned char DZ_Data[数组长度客户自定义];
JIS0208_16X16_GetData(0x04, 0x01, DZ_Data); //读取16X16点阵 JIS-0208编码0x0401的点阵数据,并将点阵数据存在DZ_Data数组中;数据长度为 32 BYTE
*************************************************************/
unsigned long JIS0208_16X16_GetData(unsigned char MSB, unsigned char LSB, unsigned char *DZ_Data);
6.1.8.韩文的API调用
该函数使用的是KSC编码调用文字。韩文的编码查询可以通过下方链接查询对应的KSC5601编码:https://download.gaotongfont.cn/GT_Font_Chip/Encoding_table/KSC5601.pdf 此处调用的是16x16字号大小的韩文,其他字号大小调用方式同理。第一个参数MSB表示编码的高字节,第二个参数LSB表示编码的低字节。
/*************************************************************
函数用法:
unsigned char DZ_Data[数组长度客户自定义];
KSC5601_F_16_GetData(0xb0, 0xA1, DZ_Data); //读取16X16点阵KSC5601编码0xb0a1的点阵数据,并将点阵数据存在DZ_Data数组中;数据长度为 32 BYTE
*************************************************************/
unsigned long KSC5601_F_16_GetData(unsigned char MSB, unsigned char LSB, unsigned char *DZ_Data);
6.1.9.泰文的API调用
该函数使用的是Unicode编码调用泰文文字。泰文的编码查询参考“2.5、编码查询”章节,获取Unicode编码。此处调用的16x24字号大小的泰文,如果只是显示单个的泰文字符只调用THAILAND_16X24_GetData即可。如果要显示泰文的句子,则要使用泰文的组合算法。目前的组合算法只能显示16x32大小的泰文。具体代码如下:
/*************************************************************
函数用法:
unsigned char DZ_Data[数组长度客户自定义];
THAILAND_16X24_GetData(0xe05, DZ_Data);
//读取16X24点阵不等宽希腊文编码0xe05的点阵数据,并将点阵数据存在DZ_Data数组中;数据长度为48 BYTE
*************************************************************/
unsigned long THAILAND_16X24_GetData(unsigned int FontCode, unsigned char *DZ_Data);
unsigned short thai11[14]={0x0E41,0x0E2B,0x0E25,0x0E48,0x0E07,0x0E19,0x0E49,0x0E33,0x0E14,0x0E37,0x0E48,0x0E21};
unsigned char thai_dot_buf[4960],m,len;//该数组大小最好不要改变
unsigned int tcount,i;
unsigned char thai_len = 0;
thai_len = sizeof(thai11) / sizeof(thai11[0]); //获取泰文字符个数
tcount=thai_buf_compose(thai11,thai_len,thai_dot_buf);//泰文组合
for (i=0;i<tcount;i++)
{
Display_Y(thai_dot_buf+2+i*66, len, 100, 16, 32);//显示泰文
m=get_width(thai_dot_buf+i*66+2,32,16);//获取显示的宽度,偏移到下次字符显示的起始点
m=*(thai_dot_buf+1+i*66);
len=len+m;
}
6.1.10.阿拉伯文的API调用
该函数使用的是Unicode编码调用阿拉伯文文字。阿拉伯文的编码查询参考“2.5、编码查询”章节,获取Unicode编码。此处调用的是16x16字号大小的阿拉伯文,如果只是显示单个的阿拉伯字符,可以直接调用ALB_16_GetData。如果要显示阿拉伯句子,则需要阿拉伯组合算法,具体的使用示例如下:
/*************************************************************
函数用法:
unsigned char DZ_Data[数组长度客户自定义];
ALB_16_GetData(0x632, DZ_Data);
//读取16X16点阵阿拉伯文编码0x632的点阵数据,并将点阵数据存在DZ_Data数组中;数据长度为 32 BYTE
*************************************************************/
unsigned long ALB_16_GetData(unsigned int unicode_alb, unsigned char *DZ_Data);
#define ARABIC_UNICODE_SIZE 8 //定义数组长度
unsigned int ara[ARABIC_UNICODE_SIZE]={0x0627,0x0644,0x062d,0x062f,0x064a,0x062f,0x064a,0x0629};//测试组合的Unicode编码
unsigned char dataResult[1024] = {0}; //最终接收组合字符数据buff
int x_position = 10,y_position = 20;
ArBic_Convertor(ara, ARABIC_UNICODE_SIZE, dataResult, 16, ALB_16x16_NW ,
ALB_Type_W); //W排置
for( i = 0;i<ARABIC_UNICODE_SIZE;i++){
//16x16阿拉伯文不等宽, 总34字节, 前两字节宽度信息, 后32字节为点阵数据
Display_W(dataResult + 2 + i * 34,x_position,y_position ,16,16);
//函数参考资料文件
x_position += dataResult[1 + i * 34]; //获取前两个字节宽度,x游标后移准备显示下一个字符
if(x_position > 230) { //屏幕越界换到下一行进行显示
x_position = 0;
y_position += 20;
}
}
6.1.11.印地文的API调用
该函数使用的是Unicode编码调用印地文文字。印地文的编码查询参考“2.5、编码查询”章节,获取Unicode编码。此处调用的是16x16字号大小的印地文,如果只是显示单个的印地文字符,可以直接调用Indic_16_GetData。如果要显示印地文句子,则需要使用组合算法,具体的使用示例如下:
/*************************************************************
函数用法:
unsigned char DZ_Data[数组长度客户自定义];
Indic_16_GetData(0x0905, DZ_Data);
//读取16X16点阵阿拉伯文编码0x0905的点阵数据,并将点阵数据存在DZ_Data数组中;数据长度为 32 BYTE
*************************************************************/
unsigned long Indic_16_GetData(unsigned int FontCode, unsigned char *DZ_Data);
/*
* 印地文组合算法
* 参数 :unicode 输入的印地文Unicode编码,Nub 输入的编码数据量,DZ_Data返回的数据缓存数组
* 返回值:组合后的字符数量
*/
unsigned short Devanagari_Convertor(unsigned short *unicode,unsigned shortNub,unsigned char *DZ_Data);
// 印地文测试示例 --------------------------------------------------------------------
unsigned char DataBuff[48*500];
void Devanagari_Test(void)
{
unsigned short i,nub=0,x=0,y=0,w=0,h=0;
unsigned short charColor=0xffff,bkColor=0x0000;
unsigned char codeNub=120;
unsigned short unicode[]={
0x0917,0x0941,0x0924,0x093E,0x0930,0x0947,0x0938,0x0020,0x0928,0x0947,0x0020,0x091A,0x0947,0x0924,0x093E,0x0935,0x0928,0x0940,0x0020,0x0926,
0x0940,0x0020,0x0915,0x093F,0x0020,0x092F,0x0926,0x093F,0x0020,0x0924,0x0924,0x094D,0x0915,0x093E,0x0932,0x0020,0x0915,0x0926,0x092E,0x0020,
0x0928,0x0939,0x0940,0x0902,0x0020,0x0909,0x0920,0x093E,0x090F,0x0020,0x0917,0x090F,0x0020,0x0924,0x094B,0x0020,0x0938,0x093E,0x092B,0x0020,
0x0939,0x0948,0x0020,0x0915,0x093F,0x0020,0x092D,0x0940,0x0937,0x0923,0x0020,0x0935,0x0948,0x0936,0x094D,0x0935,0x093F,0x0915,0x0020,0x0916,
0x093E,0x0926,0x094D,0x092F,0x093E,0x0928,0x094D,0x0928,0x0020,0x0906,0x092A,0x093E,0x0924,0x0020,0x0938,0x094D,0x0925,0x093F,0x0924,0x093F,
0x0020,0x0915,0x093E,0x0020,0x091C,0x094B,0x0916,0x093F,0x092E,0x0020,0x092C,0x0922,0x093C,0x0020,0x0930,0x0939,0x093E,0x0020,0x0939,0x0948,};
w=16;h=24;
x=5;y+=30;
nub = Devanagari_Convertor(unicode,codeNub,DataBuff); //印地文组合
for(i=0;i<nub;i++)
{
Display_Y( &DataBuff[i*48],x, y, w, h ); //显示组合后的印地文
x += get_width_Y(&DataBuff[i*48],h,w);
//获取字符的宽度,偏移到下次字符显示的起始点
if(get_width_Y(&DataBuff[i*48],h,w)==0)//不存在的编码则空格跳过
x+=5;
if((x+w)>300){
x=5;y+=h+1;
}
}
}
6.1.12.高棉文的API调用
该函数使用的是Unicode编码调用高棉文文字。高棉文的编码查询参考“2.5、编码查询”章节,获取Unicode编码。此处调用的是24x24字号大小的高棉文,其他字号大小调用方式同理。
/*************************************************************
不等宽高棉文函数用法:
unsigned char DZ_Data[数组长度客户自定义];
Khmer_24_GetData(0x19e0, DZ_Data);
//读取24X24点阵不等宽高棉文编码0x19e0的点阵数据,并将点阵数据存在DZ_Data数组中;数据长度为 72 BYTE
*************************************************************/
unsigned long Khmer_24_GetData(unsigned int FontCode, unsigned char *DZ_Data);
6.2.矢量字库API接口(此处以GT5SLAD3BFA为例)
获取矢量文字的接口函数有两种,一种是通过get_font_st函数获取矢量字符,第二种是通过get_font函数获取矢量字符。但是他们的作用是一样的,只是调用的方法有些不同。显示不同国家的文字,只需要根据提供的宏放到参数sty中即可。注意:调用中文用的是GB编码,调用其他外文用的是Unicode编码。
#define ZK_BUFFER_LEN 4608 //可修改大小, 约等于 字号*字号/8.
typedef struct vecFont
{
unsigned long fontCode; //字符编码中文: GB18030, ASCII/外文: unicode
unsigned char type; //字体 @矢量公用部分
unsigned char size; //文字大小
unsigned char thick; //文字粗细
unsigned char zkBuffer[ZK_BUFFER_LEN]; //数据存储
}VECFONT_ST;
unsigned int get_font_st(VECFONT_ST *font_st);
/**
* @brief 矢量文字读取函数
* @param pBits :数据存储
* @param sty :VEC_SONG_STY; VEC_FANG_STY; VEC_BLACK_STY; VEC_KAI_STY; VEC_FT_ASCII_STY; VEC_DZ_ASCII_STY; VEC_CH_ASCII_STY;
* @param fontCode:字符编码 :中文GBK编码; ASCII码
* @param width :文字宽度
* @param height :文字高度
* @param thick :文字粗细
* @retval 返回字符显示需要的字号大小
*/
unsigned int get_font(unsigned char *pBits,unsigned char sty,unsigned long
fontCode,unsigned char width,unsigned char height, unsigned char thick);
矢量数据验证参考6.1.1章节下的各型号数据验证表,找到对应的字库型号,用对应的函数验证对应编码的矢量数据。
6.3.灰度矢量字库API接口(此处以字库GT5SLAD3BFA为例)
参数的填写方式跟上述的矢量字库一致,函数会返回包含字符宽度和灰度阶级的数组首地址。实际的宽度数据就不需要额外的函数获取了。
/**
* @brief 灰度矢量文字读取函数
* @param pBits 文字数据缓存
* @param sty 文字字体选择 @矢量公用部分
* @param fontCode 字符编码中文: GB18030, ASCII/外文: unicode
* @param fontSize 文字大小
* @param thick 文字粗细
* @return unsigned int * ret_buff[0] 字符的显示宽度 , ret_buff[1]字符的灰度阶级[1阶/2阶/3阶/4阶]
*/
unsigned int *get_Font_Gray(unsigned char *pBits, unsigned char sty,
unsigned long fontCode, unsigned char fontSize, unsigned char thick);
灰度矢量数据验证参考6.1.1章节下的各型号数据验证表,找到对应的字库型号,用对应的函数验证对应编码的灰度矢量数据。
6.4.转码表函数的使用
当输入编码为UTF-8(需转成UTF-16编码)编码或者UTF-16(也就是高通字库里面的UNICODE)编码,则需要进行转码使用,转成对应的中文/韩文/日文编码。转中文使用带有U2G字样的函数,转韩文使用U2K字样的函数,转日文使用U2J字样的函数。这些函数可以去对应字库芯片的头文件中去找。当然也要该芯片支持转码,是否支持转码具体要看芯片规格书的“字库内容”章节部分,如果内容表里面有下图所示的一种或者几种,则代表该芯片支持对应的编码转换。
figure 20
UTF-8则需要先转成UTF-16(unicode) 再使用。转换参考函数在"01_参考资料\01_字库编码资料\UTF-8_TO_Unicode.c",如没找到可以去网上搜索,有很多UTF-8转UTF-16参考代码。参考资料获取参考章节 1.1.字库芯片SDK开发包生成步骤。以U2G函数为例,使用方法如下,其余转码函数使用方法类似
GBK_Code = (u16)U2G(font_Unicode); //将 unicode编码 font_Unicode转换成GBK/GB2312编码 GBK_Code
unsigned char GBK_High = (unsigned char)(GBK_Code >> 8);//取GBK/GB2312编码GBK_Code高字节
unsigned char GBK_low = (unsigned char)(GBK_Code & 0x00FF);//取GBK/GB2312编码GBK_Code低字节
unsigned char My_DZ_Data[32];
gt_16_GetData(GBK_High, GBK_low, 0x00, 0x00, My_DZ_Data);//传入GBK/GB2312编码获取点阵数据存入My_DZ_Data数组中
如果头文件中有U2G_GetData_16X16(font_Unicode, DZ_Data);则可以直接传入unicode编码获取点阵数据到DZ_Data数组中。

