搜索
bottom↓
回复: 23
打印 上一主题 下一主题

OLED通电瞬间雪花屏

[复制链接]

出10入12汤圆

跳转到指定楼层
1
发表于 2024-6-17 09:11:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
关机5秒后再开机不会出现,但是关机后5秒内立即开机,开机瞬间雪花屏,开始怀疑是电源问题,尝试启动5秒后再初始化OLED,故障依旧,有碰到此问题的前辈不

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入17汤圆

2
发表于 2024-6-17 09:19:11 | 只看该作者
开显示之前,先清显示RAM呗。

出20入186汤圆

3
发表于 2024-6-17 09:29:31 | 只看该作者
2楼应该是对的,否则初始化RAM是随机的

出10入12汤圆

4
 楼主| 发表于 2024-6-17 09:45:14 | 只看该作者
Trylin 发表于 2024-6-17 09:19
开显示之前,先清显示RAM呗。
(引用自2楼)

不是呢,这个方法我也试过

OLED_WR_Byte(0xAE,OLED_CMD);//--turn off oled panel
        OLED_WR_Byte(0x00,OLED_CMD);//---set low column address
        OLED_WR_Byte(0x10,OLED_CMD);//---set high column address
        OLED_WR_Byte(0x40,OLED_CMD);//--set start line address  Set Mapping RAM Display Start Line (0x00~0x3F)
        OLED_WR_Byte(0x81,OLED_CMD);//--set contrast control register
        OLED_WR_Byte(0xCF,OLED_CMD);// Set SEG Output Current Brightness
        OLED_WR_Byte(0xA0,OLED_CMD);//--Set SEG/Column Mapping     0XA0左右反置 0XA1正常
        OLED_WR_Byte(0xC0,OLED_CMD);//Set COM/Row Scan Direction   0XC0上下反置 0XC8正常
        OLED_WR_Byte(0xA6,OLED_CMD);//--set normal display
        OLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64)
        OLED_WR_Byte(0x3f,OLED_CMD);//--1/64 duty
        OLED_WR_Byte(0xD3,OLED_CMD);//-set display offset        Shift Mapping RAM Counter (0x00~0x3F)
        OLED_WR_Byte(0x00,OLED_CMD);//-not offset
        OLED_WR_Byte(0xd5,OLED_CMD);//--set display clock divide ratio/oscillator frequency
        OLED_WR_Byte(0x80,OLED_CMD);//--set divide ratio, Set Clock as 100 Frames/Sec
        OLED_WR_Byte(0xD9,OLED_CMD);//--set pre-charge period         
        OLED_WR_Byte(0xF1,OLED_CMD);//Set Pre-Charge as 15 Clocks & Discharge as 1 Clock
        OLED_WR_Byte(0xDA,OLED_CMD);//--set com pins hardware configuration
        OLED_WR_Byte(0x12,OLED_CMD);
        OLED_WR_Byte(0xDB,OLED_CMD);//--set vcomh
        OLED_WR_Byte(0x30,OLED_CMD);//Set VCOM Deselect Level        <--------------------------------
        OLED_WR_Byte(0x20,OLED_CMD);//-Set Page Addressing Mode (0x00/0x01/0x02)
        OLED_WR_Byte(0x02,OLED_CMD);//
        OLED_WR_Byte(0x8D,OLED_CMD);//--set Charge Pump enable/disable
        OLED_WR_Byte(0x14,OLED_CMD);//--set(0x10) disable
        OLED_WR_Byte(0xA4,OLED_CMD);// Disable Entire Display On (0xa4/0xa5)
        OLED_WR_Byte(0xA6,OLED_CMD);// Disable Inverse Display On (0xa6/a7)

       OLED_WR_Byte(0xAF,OLED_CMD);

出235入235汤圆

5
发表于 2024-6-17 09:49:17 | 只看该作者
问题没说清楚。。

是短时间内花屏,还是如论如何都是花屏状态

出10入12汤圆

6
 楼主| 发表于 2024-6-17 09:49:48 | 只看该作者
lyping1987 发表于 2024-6-17 09:49
问题没说清楚。。

是短时间内花屏,还是如论如何都是花屏状态
(引用自5楼)

短时间花 ,

出235入235汤圆

7
发表于 2024-6-17 09:53:13 | 只看该作者

快速上电时,屏幕的复位状态不对吧。

我想可能是他里面程序还在运行,但存储区数据丢了。

MCU上电第一件事去复位它一下呢

出10入12汤圆

8
 楼主| 发表于 2024-6-17 10:03:23 | 只看该作者
lyping1987 发表于 2024-6-17 09:53
快速上电时,屏幕的复位状态不对吧。

我想可能是他里面程序还在运行,但存储区数据丢了。
(引用自7楼)

我也是这个想的,我开机第一件事就是初始化IO,让后立马让OLED复位,故障还是一样,         

出0入476汤圆

9
发表于 2024-6-17 10:06:31 | 只看该作者
先不要给 VPP电压。先逻辑全部清空,然后再给VPP点亮屏

出50入4汤圆

10
发表于 2024-6-17 10:22:38 | 只看该作者
你这都不算啥,我当年用中景园的,是工作一段时间以后,花屏,,有的花,有的不花。。重新上电,都不花,工作十几二十分钟的就花屏了

找他们技术,说是管脚设置,STM32驱动,以前他们给的例程是推挽输出,,后面可能也发现这问题了,说要改成开漏就可以,,,,

STC驱动,用推挽就没问题。。。

不过现在工业产品都尽量不用OLED,二年后基本烧屏了。

出110入26汤圆

11
发表于 2024-6-17 16:22:05 | 只看该作者
复位不包括初始化GRAM,所以数据是随机的,
5秒内再上电不花屏是你的线路板下电慢导致。

出1070入962汤圆

12
发表于 2024-6-17 19:59:24 | 只看该作者
楼上可能就是正解,最近在折腾网上个位数价格的LCD,也关注了OLED的特性,基本都是类似的。
复位只是完成了主控芯片的准备工作,RAM内容还需要自己去填充实现清屏

github上的U8g2显示库不管是驱动哪种屏,在完成初始化后都有显式的ClearBuffer操作

出10入12汤圆

13
 楼主| 发表于 2024-6-17 20:27:44 | 只看该作者
现在的解决方法是 关机瞬间,复位 OLED ,

出350入477汤圆

14
发表于 2024-6-17 20:37:11 来自手机 | 只看该作者
442502587 发表于 2024-6-17 20:27
现在的解决方法是 关机瞬间,复位 OLED ,
(引用自13楼)

要关机了做啥都没用。
正确做法应该是开机后前先把显存清空。
oled并不是通电就自动亮起来的,你得发一些命令它才亮。所以在发岀把它点亮的指令之前先清空显存就行了。

出0入0汤圆

15
发表于 2024-6-18 08:46:06 | 只看该作者
zhuyi25762 发表于 2024-6-17 10:22
你这都不算啥,我当年用中景园的,是工作一段时间以后,花屏,,有的花,有的不花。。重新上电,都不花,工 ...
(引用自10楼)


当年用中景园 也遇到过 +1

出20入62汤圆

16
发表于 2024-6-18 08:47:17 | 只看该作者
印象中遇到过。
白嫖来的代码懒得找原因,就在上电那个地方直接初始化两遍。。。再没遇到过类似问题了。。。

出0入0汤圆

17
发表于 2024-6-18 08:48:14 | 只看该作者
上电复位 自己清屏下

出1000入0汤圆

18
发表于 2024-6-18 08:58:56 | 只看该作者
遇到问题问厂家的,现在OLED屏速度慢,需要延时降速才行(同样型号、厂家的不同批次材料不一样)

出235入235汤圆

19
发表于 2024-6-18 09:34:26 | 只看该作者
zhuyi25762 发表于 2024-6-17 10:22
你这都不算啥,我当年用中景园的,是工作一段时间以后,花屏,,有的花,有的不花。。重新上电,都不花,工 ...
(引用自10楼)

待机状态,不长期在一个位置显示相同内容,应该可以解决烧屏吧

出0入12汤圆

20
发表于 2024-6-18 09:46:24 | 只看该作者
442502587 发表于 2024-6-17 20:27
现在的解决方法是 关机瞬间,复位 OLED ,
(引用自13楼)


这个方案有效吗?有效就行。

关键场景是关机5s之内,看起来像器件下电慢,某些寄存器/cacha/ram状态随机,然后初始化又没考虑的情况。
功耗不敏感的话,在大电容的上并个放电电阻试试?

出1325入193汤圆

21
发表于 2024-6-18 09:51:43 | 只看该作者
zhuyi25762 发表于 2024-6-17 10:22
你这都不算啥,我当年用中景园的,是工作一段时间以后,花屏,,有的花,有的不花。。重新上电,都不花,工 ...
(引用自10楼)

STM32驱动,以前他们给的例程是推挽输出,,后面可能也发现这问题了,说要改成开漏就可以,,,,

STC驱动,用推挽就没问题。。。

有可能是OLED内部是5v数据接口
stc供电是5v  完全兼容
stm32的3.3v和5v数据对接 使用开漏是对的  
厂家的技术给的例程估计也是欠考虑这方面

出50入4汤圆

22
发表于 2024-6-19 08:45:58 | 只看该作者
lyping1987 发表于 2024-6-18 09:34
待机状态,不长期在一个位置显示相同内容,应该可以解决烧屏吧
(引用自19楼)

这东西就不适合用在工业产品上,不显示同一个内容的话,换来换去,自己也别扭,客户看着也别扭,。而且还不能熄屏,24小时开机使用。。。

反正工业产品能不用就不用

出50入4汤圆

23
发表于 2024-6-19 08:47:38 | 只看该作者
lb0857 发表于 2024-6-18 09:51
STM32驱动,以前他们给的例程是推挽输出,,后面可能也发现这问题了,说要改成开漏就可以,,,,

STC驱 ...
(引用自21楼)

如果一开始就不行,那还说的过去,,是工作一段时间就花屏了,重启就又好了,,然后又不定时的什么时候又花屏了。。改OD输出确实就好了

出235入235汤圆

24
发表于 2024-6-19 11:49:48 | 只看该作者
zhuyi25762 发表于 2024-6-19 08:45
这东西就不适合用在工业产品上,不显示同一个内容的话,换来换去,自己也别扭,客户看着也别扭,。而且还 ...
(引用自22楼)

他是有很多优点。亮度够,尺寸小

液晶要这个尺寸和效果,还是比较难
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-3 16:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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