打印

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

[复制链接]
398|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
昨天写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了。

使用特权

评论回复

相关帖子

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

本版积分规则

认证:西安公路研究院南京院
简介:主要工作从事监控网络与通信网络设计,以及从事基于嵌入式的通信与控制设备研发。擅长单片机嵌入式系统物联网设备开发,音频功放电路开发。

1961

主题

15931

帖子

208

粉丝