这其实是一个很简单的问题,市场上在售的oled 显示屏分为0.96和1.3 寸两个版本,当然这里面还有SPI和I2C不同接线的区分。
0.96 的驱动芯片是SSD1306,而1.3的驱动芯片是SH1106,由于不小心经常会给1.3用上SSD1306的驱动,导致了oled屏幕出现不稳定的情况,甚至出现白边,如下图所示:

如果是使用正确的SH1106驱动,那么则是:

一切正常,
二者在Arduino定义下分别是:
U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0,SCL,SDA,U8X8_PIN_NONE);
U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
SH1106 I2C的只有一个定义,所以大家还是买0.96的,别买1.3寸的给自己找麻烦。
不过让人奇怪的是后者又占用了70%左右的动态内存,前者只有30%多,另外一个问题就是U8G2出现了显示汉字不全的情况,不知道是怎么回事,没有仔细研究过
本文探讨了0.96寸与1.3寸OLED显示屏的SPI和I2C接线区别,以及SSD1306与SH1106驱动芯片的正确使用方法。指出使用错误驱动可能导致的屏幕不稳定与白边问题,并提供了Arduino下的定义示例。
5703

被折叠的 条评论
为什么被折叠?



