这其实是一个很简单的问题,市场上在售的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出现了显示汉字不全的情况,不知道是怎么回事,没有仔细研究过