在我们学习或者开发12864显示屏(带字库)的过程中,可能大家会遇到我这样的情况。如下:
第三行的“ 数学 ” 两字显示不出来?而第四行却可以,为什么?
这不是12864损坏 这不是12864损坏 这不是12864损坏
答案显而易见,仔细观察的人就发现我第三行跟第四行有个不同的地方就是加了 “ \xfd ”
这个问题是由于keil本身的固有bug,keil编译器会忽略0xFD值的字符串,导致汉字内码以0xFD结尾的汉字和紧跟着后面的汉字全部显示为乱码,因为它把0xFD丢掉了,导致后面的一大串全是错的。(但是keil官方不认为这是一种bug,所以一直没有去修改这个缺陷)
keil官方解释为
字符编码0xFD,0xFE和0xFF由C编译器在内部使用。 ANSI标准仅要求支持0x00 - 0x7F范围内的ASCII字符。
您可以在字符串中使用HEX编码插入这些字符,如下所示:
code char RussianString [] =“My Text”“\ xFD”;
当然既然出现了就有解决的办法,添加补丁方便快捷(补丁在附件中下载)
使用方法:将本软件放至KEIL的编译器【C51.EXE及A51.EXE】所在文件夹(例如:C:\KEIL_V5\C51\BIN),按[开始]即可自动打补丁(将0x[80 FB FD]替换为[80 FB FF],忽略CX51.EXE及AX51.EXE)。
本工具实测通用支持Keil C51 u2/u3/u4/u5等所有版本!
-------------------------------------------------------------------------------------------
下载链接:http://pan.nyqty.com/s/gokqhwcf
原文链接:https://blog.csdn.net/qq_34692743/article/details/82051808