找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3350|回复: 7
打印 上一主题 下一主题
收起左侧

12864显示不正常问题

[复制链接]
跳转到指定楼层
楼主
ID:113415 发表于 2016-7-2 16:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一块12864,控制器是ST7920。用单片机以串行方式驱动,显示中西文字符都可,但时不时会出现显示内容乱码问题。比如,本来要显示的是“烟花三月下扬州。”,但“烟花”之后就出现乱码或别的汉字。可笑的是,改成“烟花四月下扬州。”竟然就正常了。
   如果所写函数有问题,但大部分显示正常又作何解释?
   所用的程序是借鉴别人的,唯一不同的是原方案中单片机晶振用的是12M,我用的是25M,这样液晶与单片机两者速度相差更大,不知道是不是这个原因?
   盼望有经验的高手指教!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:123289 发表于 2016-7-2 20:17 | 只看该作者
应当是硬件问题,线长?
如用6MHz的晶振无有问题,就证实这个假设。
回复

使用道具 举报

板凳
ID:7485 发表于 2016-7-2 20:39 | 只看该作者
这是Keil uVision的问题,在汉字区位码表中,每一区里面都有一个低位字节为“FD”的一个汉字,由于Keil uVision将“FD”过滤掉了,所以不能正确编译。遇到这种情况据说有一个“补丁”可以解决。也可以直接用区位码写入。比如“三”就直接写“0xC8  0XFD"即可。我没有用补丁,就是这样用的。
回复

使用道具 举报

地板
ID:123289 发表于 2016-7-2 20:51 | 只看该作者
是不是晶振12M=OK,25M=NG,试试6M。
回复

使用道具 举报

5#
ID:113415 发表于 2016-7-3 07:04 | 只看该作者
确实如版主所说,直接写区位码,显示即可正常;谢谢版主指教!
      不过从原理上说,过滤掉FD,对所有汉字都一样对待的,但为什么有的汉字却显示正常呢?希望知道原因的朋友指导一下。
回复

使用道具 举报

6#
ID:113415 发表于 2016-7-3 14:54 | 只看该作者
经过本人查找和验证,汉字区位码表中,低位正好是FD的仅仅是某些汉字,原来理解错了,特此向朋友们致歉。另外,也找到了版主所说的补丁程序了,问题已经解决,再次谢谢大家!
回复

使用道具 举报

7#
ID:7485 发表于 2016-7-3 21:40 | 只看该作者
baofu 发表于 2016-7-3 07:04
确实如版主所说,直接写区位码,显示即可正常;谢谢版主指教!
      不过从原理上说,过滤掉FD,对所有汉 ...

对汉字区位码来说,每一区的低位字节只有一个是**FD的,每区的倒数第三个字。如 三、数、电、庚......等等。
回复

使用道具 举报

8#
ID:472325 发表于 2019-2-7 11:06 | 只看该作者
这种情况有碰到过,你说四就可以三就不行,说明字库里面没有三,要自建字符才能显示出来

评分

参与人数 3黑币 +57 收起 理由
areyouok + 35
找人PK + 12
Sawardeakar + 10

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表