每个英文,是由一个字节的ASCII码表示的。
每个中文,是由两个字节的GBK码表示的。
每个GBK码由2个字节组成,第一个字节的数值区间为0X81~0XFE,第二个字节的数值区间为0X40~0XFF,不过,第二个区间中的0x7F和0xFF这两个位置没有对应的字符。
把所有的汉字都放到一座大楼里边,这座大楼有126个房间,每个房间放190个汉字。就可以容纳所有的中文汉字和符号。房间号是从0x81开始,一直到0xFE,一共126个房间。每个房间有192个座位,座位编号从0x40一直到0xFF,其中,0x7F和0xFF座位上没有放置汉字和字符。(这就是对GBK码最形象的解释)
例如汉字“瑞”的GBK编码为C8 F0,第一字节C8,位于0X81~0XFE之间,第二字节F0,位于0X40~0XFF之间。就是说,“瑞”这个字,位于大楼门牌号为0xC8房间当中的编号为0xF0的座位上。
除了以上内容,视频中还介绍了从W25Q16芯片中读取汉字字模的方法。
在W25Q16中,我们放的是16X16像素的字模,16X16像素的字模,每个汉字需要32个字节来表示。
我们放字模的时候,是从W25Q16的地址0开始放的,也就是说,W25Q16当中的第0~31个字节,就是GBK字库中的第一个汉字,就是GBK码为0x8140的汉字。这个汉字位于汉字大楼的门牌号为0x81房间中的编号为0x40座位。因为门牌号是从0x81开始的,实际上就是位于第1个房间。因为座位编号是从0x40开始的,实际上就是第一个房间当中的第一个字符。也就是W25Q16当中存储的第一个字符。
这样,就可以很容易的写出取字模的函数了。
|