初级会员

- 积分
- 190
- 金钱
- 190
- 注册时间
- 2017-2-9
- 在线时间
- 52 小时
|
发表于 2017-5-12 00:09:48
|
显示全部楼层
你这个问题太大了,首先汉字是由机内码保存的,有两个字节,啊的机内码是0xBO 0xA1,而' '表示一个字符,是一个字节,'啊'这个实质上在' '内有两个字节,当然要出警告了,还有*p<='啊',指针p指向ASCII字符,这些字符的值均小于255,就是0xFF,你让一个始终小于0xFF的值和一个有两个字节的汉字比较,根本就不知道要和汉字机内码的哪个字节比较。还有lcd_showchar这个函数只能显示ASCII字符,它的原理是用要显示的字符减去空格这个字符,来得到这个字符在字库中的偏移量,进而得到字模数据。汉字不是ASCII字符,你让它减去空格这个字符毫无意义,并且函数参数中要显示的字符定义为8位,汉字显然是由16位存储的,你要丢失信息的。综合来讲,无法定位字模数据是你显示不出来的根本原因。建议你仔细研究一下ASCII字符的显示流程和字模定位原理,了解汉字的存储规则,自己写一个要显示汉字的索引,重写一个汉字的显示函数(因为每个汉字要显示的点阵是ASCII字符的2倍),使你的程序能够真正定位字模数据。 |
|