接口/总线/驱动
上次介绍了GB2312的编码规则,但是没有说明具体怎么在生成的文件中查找对应的字模编码,所以对这部分内容进行补充。以16号GB2312字库为例。
如果要查找“汉”字,根据编码规则,先在串口打印出“汉”的十六进制数第一第二字节。
第一字节为0xba,第二字节为0xba。
然后根据这两个字节计算区位码:
区码偏移字节量:
区码:0xba - 0xa1 = 0x19 = 25
一个区94个位:25 * 94 = 2350
一个位占32字节:2350 * 32 = 75200
区内位码偏移字节量:
位码:0xba - 0xa1 = 0x19 = 25
一个位占32字节:25 * 32 = 800
区码偏移字节量加上区内位码偏移字节量得到总字节偏移量就可以找到“汉”在GB2312字库文件中的位置:
75200 + 800 = 76000 = 0x128e0
用UltraEdit打开生成的字模库文件,找到0x128e0处的32字节,即为“汉”的字模,可以看到和单字模生成软件生成的自摸完全一样。
单字模生成器生成的字模:
字库生成器生成的字模:
可以看到字库生成器生成的字模和单字模生成器生成的字模完全一样。对于其他汉字的字模查找方式可以按以上方法进行查找。
用这个方法可以判断字库生成器生成的字模是否正确,因为如果软件没破解或者出现Bug有可能生成错误的字库,所以把字库写入flash前有必要判断生成的字库是否正确。
全部0条评论
快来发表一下你的评论吧 !