------------------------------------------------------------------------------------------------------------ 每天解决一个问题3 :你未曾发现的keil c51 汉字bug
上一期我讲了比较全面的MCU显示中文字库的方法,但是在实际项目中,有些IDE对于特定字符却不能够正确的“翻译”汉字的机内码,导致你所取字模位置异常,最终显示汉字乱码,而这个IDE就是KEIL C51。这也是万恶的keil存在的一个臭名昭著的bug,也一直没有修复。
(这个问题只有在实际项目中才会发现,一般不怎么会注意的)
1.问题简介:
汉字字符机内码应该是两个字节,分高低2个字节,2个字节都大于127,当然并小于256。
西文字符机内码就是ACSII值,一个字节,数值小于128;
在汉字机内码传替时,低位如果是0XFD将会被“翻译”成0X00!
2.实际举例:
"数","正","过"
正确的机内码应该是:0xcafd, 0xd5fd, 0xb9fd;
真实的传替的数值为:0xca00,0xd500,0xb900。
所以你显示的汉字自然错了!
3.修复工具:
ccKeilVxx.rar
(11.35 KB, 下载次数: 1)
|