void Get_GBK_DZK(uint8_t *code, uint8_t *hzdata, uint16_t size)
{
uint8_t GBKH,GBKL; // GBK码高位与低位
uint32_t offset; // 点阵偏移量
GBKH=*code;
GBKL=*(code+1); // GBKL=*(code+1);
if(GBKH>0XFE||GBKH<0X81)return;
GBKH-=0x81;
if(GBKL<0X7F)
GBKL-=0X40;
else GBKL-=0x41;
offset=(uint32_t)((190*GBKH+GBKL)*size); //得到字库中的字节偏移量
switch(LCD_Currentfonts)
{
case 16: get_data_from_file("0:gbk16s.bin",hzdata,offset,size); break;
case 24: get_data_from_file("0:gbk24s.bin",hzdata,offset,size); break;
}
return;
}
GB2312收录简化汉字及符号、字母、日文假名等共7445 个图形字符,其中汉字占6763 个。
当GBKL<0X7F 时:Hp=((GBKH-0x81)×190+GBKL-0X40)×(sizex2);
当GBKL>0X80 时:Hp=((GBKH-0x81)×190+GBKL-0X41)×(sizex2);
其中GBKH、GBKLL 分别代表GBK 的第一个字节和第二个字节(也就是高位和低位),size 代表汉字字体的大小(比如16 字体,24字体等),Hp 则为对应汉字点阵数据在字库的偏移地址。