442502587 发表于 2024-6-17 09:11:31

OLED通电瞬间雪花屏

关机5秒后再开机不会出现,但是关机后5秒内立即开机,开机瞬间雪花屏,开始怀疑是电源问题,尝试启动5秒后再初始化OLED,故障依旧,有碰到此问题的前辈不

Trylin 发表于 2024-6-17 09:19:11

开显示之前,先清显示RAM呗。

yuyu87 发表于 2024-6-17 09:29:31

2楼应该是对的,否则初始化RAM是随机的

442502587 发表于 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 addressSet 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);

lyping1987 发表于 2024-6-17 09:49:17

问题没说清楚。。

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

442502587 发表于 2024-6-17 09:49:48

lyping1987 发表于 2024-6-17 09:49
问题没说清楚。。

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

短时间花 ,

lyping1987 发表于 2024-6-17 09:53:13

442502587 发表于 2024-6-17 09:49
短时间花 ,
(引用自6楼)

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

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

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

442502587 发表于 2024-6-17 10:03:23

lyping1987 发表于 2024-6-17 09:53
快速上电时,屏幕的复位状态不对吧。

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

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

wy2000 发表于 2024-6-17 10:06:31

先不要给 VPP电压。先逻辑全部清空,然后再给VPP点亮屏

zhuyi25762 发表于 2024-6-17 10:22:38

你这都不算啥,我当年用中景园的,是工作一段时间以后,花屏,,有的花,有的不花。。重新上电,都不花,工作十几二十分钟的就花屏了

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

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

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

kinoko 发表于 2024-6-17 16:22:05

复位不包括初始化GRAM,所以数据是随机的,
5秒内再上电不花屏是你的线路板下电慢导致。

Appcat 发表于 2024-6-17 19:59:24

楼上可能就是正解,最近在折腾网上个位数价格的LCD,也关注了OLED的特性,基本都是类似的。
复位只是完成了主控芯片的准备工作,RAM内容还需要自己去填充实现清屏

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

442502587 发表于 2024-6-17 20:27:44

现在的解决方法是 关机瞬间,复位 OLED ,

redroof 发表于 2024-6-17 20:37:11

442502587 发表于 2024-6-17 20:27
现在的解决方法是 关机瞬间,复位 OLED ,
(引用自13楼)

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

磊磊映画 发表于 2024-6-18 08:46:06

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

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

天下乌鸦一般黑 发表于 2024-6-18 08:47:17

印象中遇到过。
白嫖来的代码懒得找原因,就在上电那个地方直接初始化两遍。。。再没遇到过类似问题了。。。

yLin 发表于 2024-6-18 08:48:14

上电复位 自己清屏下

toptrying 发表于 2024-6-18 08:58:56

遇到问题问厂家的,现在OLED屏速度慢,需要延时降速才行(同样型号、厂家的不同批次材料不一样)

lyping1987 发表于 2024-6-18 09:34:26

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

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

KirkY 发表于 2024-6-18 09:46:24

442502587 发表于 2024-6-17 20:27
现在的解决方法是 关机瞬间,复位 OLED ,
(引用自13楼)

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

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

lb0857 发表于 2024-6-18 09:51:43

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

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

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

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

zhuyi25762 发表于 2024-6-19 08:45:58

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

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

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

zhuyi25762 发表于 2024-6-19 08:47:38

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

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

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

lyping1987 发表于 2024-6-19 11:49:48

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

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

液晶要这个尺寸和效果,还是比较难
页: [1]
查看完整版本: OLED通电瞬间雪花屏