锦鈓 发表于 昨天 21:15

OLED驱动初始化(SSD1315/SSD1306)太坑了,我真的服了,大家要留意 ...

前因:
最近开始啃OLED了,特别是初始化配置方面的。
我看了SSD1306和SSD1315的手册,没发现有太大的区别,
但网上有人说在配置方面是有一些区别的,可是我没找到区别哈。
于是我就对照SSD1315的手册开始写配置文件,
从盒子里翻出来一个不知道什么时候买的OLED,就开始测试。
就在我测试的时候人傻了。



看看我这个配置信息:
1、水平寻址模式
2、窗口设置的是(0,0)-(63,127),即8*128
3、ROW行偏移和COM偏移为0
4、扫描方向也都是正常的,A0h和C0h
5、DA指令是b4=1,b5=0

6、其他的配置无关紧要了



屏幕实际显示画面:
按照b4=1,b5=0,c0的配置,手册上应该是这样的:

但实际情况貌似是这样的:

而且貌似COM或者ROW偏移了负8个偏移量。
(PS:这里我结束后,调整了页范围为1-8,或设置了偏移量才正常。本文后续内容还是按无偏移量,页范围为0-7演示。)



看到这个结果,我顿时就懵了。怎么手册和实际情况对不上啊?
然后,猛然想到网上有人说过SSD1315和SSD1306的配置有不同的地方。
我就开始对比这部分的内容,也没发现有哪里不同的。


好嘛,离谱。我一怒之下买了SSD1315_I2C、SSD1306_I2C、SSD1315_SPI、SSD1306_SPI四种型号的OLED,
我还特地问了商家,拿到手后如何区分两种驱动的屏幕,


商家说,SSD1315的屏幕尺寸会小一点。



等了几天,收到货我又傻了。
商家貌似发错了,发了两个SSD1306的I2C屏幕给我。
不过从SPI的确实可以看出区别,SSD1315的尺寸小了,
而且软排线上面的丝印也写了1315的。



那么,拿一个SSD1306_I2C的屏幕,对比一下我那个位置型号的OLED看看。
emmmm,很可能是1315的,因为尺寸确实小了一圈。
但后面的丝印是GM12864-41(PS:后面百度了一下,貌似就是1315!!!)



同样的代码用新屏幕试一下看看

额,虽然DA指令还是对应不上,但知识D3偏移量正常了。算了就这样吧。



主要还是发个贴,提醒大家注意一下这些常用的配置问题。
如果出现显示不正常的可以看看这些配置,适当调整一下。
后面如果有空了,我再出一篇手册详解吧。


这里可以看一下,我用新屏幕尝试DA的4种显示效果,默认用C0,不上下翻转哈。
第一种:b4=0,b5=0



第二种:b4=1,b5=0(默认用这个)



第三种:b4=0,b5=1



第四种:b4=1,b5=1


锦鈓 发表于 昨天 21:27


刷新是直接发送一帧1024字节数据


显示中英文

页: [1]
查看完整版本: OLED驱动初始化(SSD1315/SSD1306)太坑了,我真的服了,大家要留意 ...