ESP8266如何使用u8g2(I2C)驱动SH1106的OLED

u8g2是一款单色图形库,非常适合12864之类的显示屏,基本上支持了市面上的主流显示控制器。可是偏偏对SH1106不是那么友好,使用起来不是很方便。打开IDE的示例程序可以看到对SH1106列出来的几乎都SPI通信方式,仅仅只有一条是使用了硬件I2C的,但对于使用想使用模拟方式的就不是很方便了。

今天就分享一下怎么在ESP8266上使用u8g2驱动SH1106的OLED,本文中使用的是模拟I2C的方式,Arduino IDE编写。

一.首先在IDE库中安装u8g2库

直接在IDE的库管理器搜索“u8g2”关键字下载安装即可:

ESP8266如何使用u8g2(I2C)驱动SH1106的OLED_第1张图片

二 .打开示例程序修改代码

ESP8266如何使用u8g2(I2C)驱动SH1106的OLED_第2张图片

我打开的是u8g2logo的示例程序。然后再敲下这句代码或者复制示例中硬件I2C的修改:

U8G2_SH1106_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0,  /*SCL*/  14,  /*SDA*/  2,   /*reset*/  U8X8_PIN_NONE);

*注 :函数内的第一个和最后一个参数不用修改,SCL和SDA则修改为自己板子上要对应的引脚。实测8266上的GPIO16不可用作I2C引脚。 

三 .注释steup函数中引脚配置的代码

ESP8266如何使用u8g2(I2C)驱动SH1106的OLED_第3张图片

 四.连接好你的设备,编译上传

ESP8266如何使用u8g2(I2C)驱动SH1106的OLED_第4张图片

编译无误,上传成功。

五 .大功告成

ESP8266如何使用u8g2(I2C)驱动SH1106的OLED_第5张图片

接下来你就可以使用u8g2去玩SH1106了。

*注:本文对于SSD1306控制器也是适用的,但SH1106是不兼容SSD1306代码的,会出现白边或者字体有间隔。

你可能感兴趣的:(u8g2)