OLED通电瞬间雪花屏
关机5秒后再开机不会出现,但是关机后5秒内立即开机,开机瞬间雪花屏,开始怀疑是电源问题,尝试启动5秒后再初始化OLED,故障依旧,有碰到此问题的前辈不 开显示之前,先清显示RAM呗。 2楼应该是对的,否则初始化RAM是随机的 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
问题没说清楚。。
是短时间内花屏,还是如论如何都是花屏状态
(引用自5楼)
短时间花 , 442502587 发表于 2024-6-17 09:49
短时间花 ,
(引用自6楼)
快速上电时,屏幕的复位状态不对吧。
我想可能是他里面程序还在运行,但存储区数据丢了。
MCU上电第一件事去复位它一下呢 lyping1987 发表于 2024-6-17 09:53
快速上电时,屏幕的复位状态不对吧。
我想可能是他里面程序还在运行,但存储区数据丢了。
(引用自7楼)
我也是这个想的,我开机第一件事就是初始化IO,让后立马让OLED复位,故障还是一样, 先不要给 VPP电压。先逻辑全部清空,然后再给VPP点亮屏 你这都不算啥,我当年用中景园的,是工作一段时间以后,花屏,,有的花,有的不花。。重新上电,都不花,工作十几二十分钟的就花屏了
找他们技术,说是管脚设置,STM32驱动,以前他们给的例程是推挽输出,,后面可能也发现这问题了,说要改成开漏就可以,,,,
STC驱动,用推挽就没问题。。。
不过现在工业产品都尽量不用OLED,二年后基本烧屏了。 复位不包括初始化GRAM,所以数据是随机的,
5秒内再上电不花屏是你的线路板下电慢导致。 楼上可能就是正解,最近在折腾网上个位数价格的LCD,也关注了OLED的特性,基本都是类似的。
复位只是完成了主控芯片的准备工作,RAM内容还需要自己去填充实现清屏
github上的U8g2显示库不管是驱动哪种屏,在完成初始化后都有显式的ClearBuffer操作 现在的解决方法是 关机瞬间,复位 OLED , 442502587 发表于 2024-6-17 20:27
现在的解决方法是 关机瞬间,复位 OLED ,
(引用自13楼)
要关机了做啥都没用。
正确做法应该是开机后前先把显存清空。
oled并不是通电就自动亮起来的,你得发一些命令它才亮。所以在发岀把它点亮的指令之前先清空显存就行了。
zhuyi25762 发表于 2024-6-17 10:22
你这都不算啥,我当年用中景园的,是工作一段时间以后,花屏,,有的花,有的不花。。重新上电,都不花,工 ...
(引用自10楼)
当年用中景园 也遇到过 +1 印象中遇到过。
白嫖来的代码懒得找原因,就在上电那个地方直接初始化两遍。。。再没遇到过类似问题了。。。 上电复位 自己清屏下 遇到问题问厂家的,现在OLED屏速度慢,需要延时降速才行(同样型号、厂家的不同批次材料不一样) zhuyi25762 发表于 2024-6-17 10:22
你这都不算啥,我当年用中景园的,是工作一段时间以后,花屏,,有的花,有的不花。。重新上电,都不花,工 ...
(引用自10楼)
待机状态,不长期在一个位置显示相同内容,应该可以解决烧屏吧 442502587 发表于 2024-6-17 20:27
现在的解决方法是 关机瞬间,复位 OLED ,
(引用自13楼)
这个方案有效吗?有效就行。
关键场景是关机5s之内,看起来像器件下电慢,某些寄存器/cacha/ram状态随机,然后初始化又没考虑的情况。
功耗不敏感的话,在大电容的上并个放电电阻试试? zhuyi25762 发表于 2024-6-17 10:22
你这都不算啥,我当年用中景园的,是工作一段时间以后,花屏,,有的花,有的不花。。重新上电,都不花,工 ...
(引用自10楼)
STM32驱动,以前他们给的例程是推挽输出,,后面可能也发现这问题了,说要改成开漏就可以,,,,
STC驱动,用推挽就没问题。。。
有可能是OLED内部是5v数据接口
stc供电是5v完全兼容
stm32的3.3v和5v数据对接 使用开漏是对的
厂家的技术给的例程估计也是欠考虑这方面 lyping1987 发表于 2024-6-18 09:34
待机状态,不长期在一个位置显示相同内容,应该可以解决烧屏吧
(引用自19楼)
这东西就不适合用在工业产品上,不显示同一个内容的话,换来换去,自己也别扭,客户看着也别扭,。而且还不能熄屏,24小时开机使用。。。
反正工业产品能不用就不用 lb0857 发表于 2024-6-18 09:51
STM32驱动,以前他们给的例程是推挽输出,,后面可能也发现这问题了,说要改成开漏就可以,,,,
STC驱 ...
(引用自21楼)
如果一开始就不行,那还说的过去,,是工作一段时间就花屏了,重启就又好了,,然后又不定时的什么时候又花屏了。。改OD输出确实就好了 zhuyi25762 发表于 2024-6-19 08:45
这东西就不适合用在工业产品上,不显示同一个内容的话,换来换去,自己也别扭,客户看着也别扭,。而且还 ...
(引用自22楼)
他是有很多优点。亮度够,尺寸小
液晶要这个尺寸和效果,还是比较难
页:
[1]