学生尧 发表于 2012-6-7 17:02:08

让tft显示汉字的问题

用单片机12c5a32s2+tft+sd卡做的一个东西,sd卡中存放一个hzk16.bin的汉字库文件,用单片机通过读sd卡在汉字库中查找(通过汉字区位码查询)得到一个汉字的32个字节的数据,让tft显示,显示一个字时,正常,比如    LCD_Hzk_String(20,130,"人",Red,Blue2);   tft显示正常,如果是这样LCD_Hzk_String(20,130,"真心爱人",Red,Blue2);彩屏tft显示的内容是:“真心爱熔”,上面的函数是一个彩屏tft显示用的函数,
还有就是,再比如LCD_Hzk_String(20,130,"真的爱你",Red,Blue2);   tft显示的是”真的爱捏“,有时候显示”睁的爱捏“,显示其他的一串汉字还比较正常,不知道我这样有没有叙述清楚,像这样问题应该是哪里出问题了呢??希望高手帮下忙,谢谢

fly_02827 发表于 2012-6-8 15:03:08

无图无真相啊,把图像和源码贴出来看看

学生尧 发表于 2012-6-8 20:36:30

那个昨天调了一上午,上面的问题解决了,又遇到一个新问题,就是显示单个字的时候这个“她”字显示不正常,其他字(目前随便写的汉字)都正常,显示汉字好串的时候只有汉字穿里没有”她“字就正常,带“她”的又不正常,刚刚楼主说的截图,手机没有照相功能,不好意识啊,

学生尧 发表于 2012-6-8 20:37:39

这是程序代码

pang7 发表于 2012-6-8 20:58:12

是不是字符全半角问题 你单独显示一下这个她试试 也许是字库的问题

tlptotop 发表于 2012-6-8 22:14:45

学生尧 发表于 2012-6-8 20:36 static/image/common/back.gif
那个昨天调了一上午,上面的问题解决了,又遇到一个新问题,就是显示单个字的时候这个“她”字显示不正常, ...

“她”的内码是 cb fd,汉字部分显示不正常,我首先想到的是keil的0xfd bug。这个应该就是这个问题。

学生尧 发表于 2012-6-9 07:28:13

单独显示“她”的时候tft显示的是(那个字我不认识)一个提手旁旁边再加一个“达”;刚刚开始也以为是汉字库的问题,后来换了三个汉字库,还是不行,结果显示的还是那个不认得的字,六楼说的keill编译器问题,不懂,如果是那样的话,怎么解决呢?

joing2000 发表于 2012-6-9 09:49:24

这个问题,就是KEIL编译器在编译含0xfd的字时。会出现错误,不能转换成ASII码
你可以用直接输入ASII码的方式来把它显示出来。\xcb \xfd 这样

学生尧 发表于 2012-6-9 19:37:41

八楼,我刚刚试了,如果把它改成你那样的,还真的显示“她”了,显示正常,像这样怎么办啊????

goolloo 发表于 2012-6-9 20:06:39

学生尧 发表于 2012-6-9 19:37 static/image/common/back.gif
八楼,我刚刚试了,如果把它改成你那样的,还真的显示“她”了,显示正常,像这样怎么办啊???? ...

建议手动规避

学生尧 发表于 2012-6-10 07:16:44

额,这个能不能具体点??呵呵,谢谢

BXAK 发表于 2012-6-10 08:06:25

学生尧 发表于 2012-6-10 07:16 static/image/common/back.gif
额,这个能不能具体点??呵呵,谢谢

百度“KEIL 0xFD补丁”

学生尧 发表于 2012-6-10 09:01:48

嗯,谢谢各位i

zcmthr 发表于 2012-6-13 23:25:09

好.学习了.{:smile:}{:smile:}{:smile:}{:smile:}

hongkong 发表于 2013-7-27 15:25:35

长见识了!

fastweb 发表于 2013-7-27 16:55:59

Keil永远不会改这个问题了,所有版本的Keil都要改一遍才能用中文字符串(改C51.EXE,Cx51.EXE,如果用汇编还要改A51.EXE和Ax51.EXE)。
页: [1]
查看完整版本: 让tft显示汉字的问题