oled液晶显示有覆盖现象,代码应该怎么改一下呢?

carl3753198 2016-11-28 11:45:41
我24*24的acs码表显示abcd等字符有覆盖的现象怎么修改一下,显示基本对了,最后修改一下哪里呢?
LCD_ShowString(125,33,"abcd"); 我的字库取模由1608改为24*24




...全文
708 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
carl3753198 2016-11-28
  • 打赏
  • 举报
回复
字库用pctolcd2002取的24*24
C_Rabbit 2016-11-28
  • 打赏
  • 举报
回复
就是temp的问题……
C_Rabbit 2016-11-28
  • 打赏
  • 举报
回复
额,貌似看错了,楼上说的有误,我再看下
C_Rabbit 2016-11-28
  • 打赏
  • 举报
回复
看不到你的字库是什么格式,无法判断 不过变量temp按照你的用法的话,u8是不行的,应该设置成u16,综合分析也应该是现在出现这个显示错误的原因
carl3753198 2016-11-28
  • 打赏
  • 举报
回复
是分开了,那又为什么没有显示完整呢?字库错了还是函数呢?

C_Rabbit 2016-11-28
  • 打赏
  • 举报
回复
x+=8 改成 x+=12试试
carl3753198 2016-11-28
  • 打赏
  • 举报
回复

carl3753198 2016-11-28
  • 打赏
  • 举报
回复
carl3753198 2016-11-28
  • 打赏
  • 举报
回复
应该像9楼说的那样,但是我还是不知道怎么改好,48个字节,应该都是8位8位来做的。现在我把c51版的程序贴上去,有空就看看吧,非常感谢你们,有你们心里踏实一点




xqhrs232 2016-11-28
  • 打赏
  • 举报
回复
是不是字符的间隔没算好?
C_Rabbit 2016-11-28
  • 打赏
  • 举报
回复
要干活了,最后通读一遍,只能作出如下猜测: 首先,字库是以48个字节为1个字符,即1个字符共有48*8=384个点位,以高度为16分的话,宽度则应该是24,这里暂不知道具体字库是什么样子的(实际是懒得打字到字符转换软件去比对了) 其次,在显示程序中,字库的单个字符是由48个char型构成的,那么temp设置为u8是对的,但这么一来,for(t=0,t<12,t++)函数中的temp>>=1这个移位操作就很奇怪了,因为只有8位,移12位的话,最后面4位的操作肯定是显示空白,但不知道LCD_WR_DATA函数是怎么运作的,所以这里是存在问题的 最后,楼主加油,我闪了。
C_Rabbit 2016-11-28
  • 打赏
  • 举报
回复
从字库看,貌似你的字库显示效果是“ a ”," b "这样的? 如果是的话,那依然是覆盖了。 那么只需要把x+=8那里改成x+=24即可 但是,你用的显示函数里有个地方很奇怪,temp明明设置的是u8,移位操作只能支持8位,却拿它做12位的移位操作;然而字库又是8位的数据,所以这个代码本身问题就很多,是否移植的过于粗糙了
carl3753198 2016-11-28
  • 打赏
  • 举报
回复
把temp改成u16改了还是不起作用,感觉那里的数据类型还要改一下?

19,519

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧