打印

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

[复制链接]
620|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gaoyang9992006|  楼主 | 2024-7-5 09:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
昨天写ESP8266,驱动I2C的SSD1306的OLED屏幕。0.91寸,分辨率128*32可是无论如何只能写第一行,而且只能插入点是0,8才能完整的显示第一行。
问题在哪儿呢,认真排查库函数代码,仔细端详对比NodeMCU的Lua初始化代码,发现了端倪。原来使用错了初始化函数。
支持的型号太多了,SSD1306就有一大堆。

常见的这款用下面这句初始化才会正确显示。
// 使用 U8g2 库初始化 OLED
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了。

使用特权

评论回复

相关帖子

发新帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:如果你觉得我的分享或者答复还可以,请给我点赞,谢谢。

1998

主题

16072

帖子

211

粉丝