OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 22895|回复: 11

OLED做菜单显示,出现乱码,如:位置错位、字符上下颠倒或者直接黑屏

[复制链接]

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-1-19
在线时间
0 小时
发表于 2015-1-29 15:04:06 | 显示全部楼层 |阅读模式
5金钱

本人在用OLED替换LCD后将之前的程序略做修改,想直接将显示部分替换成OLED的程序结果按照LCD的显示流程修改后,OLED上出现乱码,如:位置错位、字符上下颠倒或者直接黑屏。请问哪位大神,OLED做菜单刷新显示一般是什么流程,是不是显示,还是其他部分的问题谢谢!

最佳答案

查看完整内容[请看2#楼]

回复【3楼】hongyuo117: --------------------------------- 1K缓存是指  STM32的RAM   原子哥的OLED例程里面用的是 u8 OLED_GRAM[128][8]; 整屏刷  二级菜单返回的时候出问题  这个可能是你要显示的内容不正确  导致的
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5779
金钱
5779
注册时间
2013-11-22
在线时间
1211 小时
发表于 2015-1-29 15:04:07 | 显示全部楼层
回复【3楼】hongyuo117:
---------------------------------
1K缓存是指  STM32的RAM   原子哥的OLED例程里面用的是 u8 OLED_GRAM[128][8];
整屏刷  二级菜单返回的时候出问题  这个可能是你要显示的内容不正确  导致的
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5779
金钱
5779
注册时间
2013-11-22
在线时间
1211 小时
发表于 2015-1-29 23:35:42 | 显示全部楼层
至于字符上下颠倒, 可以在初始化时候设置 X,Y起始坐标,
乱码可能是显示方式不对,具体要看你的字体取模方式以及显示方式,要配合着来
刷新嘛   清除当前显示(清屏),然后显示新内容  记得用1K字节的缓存   整屏刷
回复

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-1-19
在线时间
0 小时
 楼主| 发表于 2015-1-30 09:18:22 | 显示全部楼层
回复【2楼】lycreturn:
---------------------------------
谢谢你的回复,我底层的驱动用的是OLED的例程,整屏显示没有出现问题。但是,要更新显示刷屏的时候从一级菜单进入二级再返回到一级菜单就会出现上面的问题了。还有1K缓存是指OLED控制芯片SH1106的缓存吗?谢谢
回复

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-1-19
在线时间
0 小时
 楼主| 发表于 2015-1-30 10:08:37 | 显示全部楼层

这是两部分程序,主函数做温湿度的实时显示,然后SYSTICK每0.5S钟触发中断,进SYSTICK中断处理红外按键扫描,如有相应按键按下执行对应的菜单显示(fun*),用的是原子哥的例程,而且出现乱码也不是每次都有,有时候是正常显示。
回复

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-1-19
在线时间
0 小时
 楼主| 发表于 2015-1-30 10:11:51 | 显示全部楼层
回复【4楼】lycreturn:
---------------------------------
用的是原子哥的例程,而且每次都有清屏再显示,出现的现象是时好时坏,正常时三级菜单之间转换没有一点问题,但是好像红外按键一抖动就出现乱码显示,部分代码已贴在4楼,请您看下,谢谢。
回复

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-1-19
在线时间
0 小时
 楼主| 发表于 2015-1-30 14:37:49 | 显示全部楼层
回复【4楼】lycreturn:
---------------------------------
多谢指导,终于找到问题了,是我在主程序跑显示程序时进入中断去处理另一个显示,等处理完回来继续跑主程序就出现乱码了,重复向OLED写入数据所以才出错了。
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-4-27
在线时间
4 小时
发表于 2016-9-28 15:31:45 | 显示全部楼层
楼主,你是用的1106吗?还是1306。这两个只是在初始化的时候有区别?(原子的例程)
回复

使用道具 举报

58

主题

359

帖子

0

精华

高级会员

Rank: 4

积分
987
金钱
987
注册时间
2014-9-29
在线时间
261 小时
发表于 2016-9-28 15:46:18 | 显示全部楼层
从来没出现过问题。。。。
回复

使用道具 举报

0

主题

2

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2020-11-21
在线时间
12 小时
发表于 2021-3-16 15:08:20 | 显示全部楼层
hongyuo117 发表于 2015-1-30 14:37
回复【4楼】lycreturn:
---------------------------------
多谢指导,终于找到问题了,是我在主程序跑显示 ...

谢谢,楼主,帮忙解决了我的问题!!!
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2021-1-24
在线时间
1 小时
发表于 2021-6-12 12:38:48 | 显示全部楼层
hongyuo117 发表于 2015-1-30 14:37
回复【4楼】lycreturn:
---------------------------------
多谢指导,终于找到问题了,是我在主程序跑显示 ...

应该怎么解决
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2021-5-28
在线时间
5 小时
发表于 2021-9-2 21:38:19 | 显示全部楼层

这还不简单啊,在要显示的时候关闭中断,显示完成再开启中断就搞定了啊
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-1 02:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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