Arduino下U8G2选择错了屏幕类型初始化后的故障

[复制链接]
 楼主| gaoyang9992006 发表于 2024-7-5 09:05 | 显示全部楼层 |阅读模式
昨天写ESP8266,驱动I2C的SSD1306的OLED屏幕。0.91寸,分辨率128*32可是无论如何只能写第一行,而且只能插入点是0,8才能完整的显示第一行。
问题在哪儿呢,认真排查库函数代码,仔细端详对比NodeMCU的Lua初始化代码,发现了端倪。原来使用错了初始化函数。
支持的型号太多了,SSD1306就有一大堆。

常见的这款用下面这句初始化才会正确显示。
  1. // 使用 U8g2 库初始化 OLED
  2. U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R2, /* reset=*/ -1, /* clock=*/ 12, /* data=*/ 14);   // pin remapping with ESP8266 HW I2C
注意默认的第一个参数是U8G2_R0,表示默认显示方向。
我修改成R2表示旋转180度,如果为R1,则是旋转90度,如果为R3旋转270度。。。
因为是I2C接口一共VCC、GND、SCL、SDA四根线,所以复位用缺省值-1,后面两个参数是使用的引脚编号。
这样就可以轻松使用U8G2了。
个人签名:如果你觉得我的分享或者答复还可以,请给我点赞,谢谢。

2045

主题

16350

帖子

222

粉丝
快速回复 在线客服 返回列表 返回顶部