U8g2初始化(如何选择oled构造函数)
warning:
这篇文章距离上次修改已过1810天,其中的内容可能已经有所变动。
注意:U8g2不支持“无控制器”屏幕
U8g2驱动库构造函数
U8g2驱动库构造函数格式如下:
U8G2\_ 屏幕控制器型号 \_ 分辨率 \_ 显示名称 \_ 缓冲模式(1,2,F) \_ 通讯方式 u8g2( 参数 );
例如:
//SSD1306,128x64,全屏缓冲模式,模拟I2C,I2C,u8g2(旋转0度,时钟,数据,重置)
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);
你可以点击这里查看已支持的显示控制器构造函数
屏幕控制器型号
这个就是你oled屏幕控制器的型号,比如SSD1306;
详细请咨询卖家。一般商品描述都有。
![2019-12-29_132031.png 2019-12-29_132031.png](/usr/themes/waxy/img/loading.gif)
屏幕分辨率
这个就是你oled屏幕控制器的型号,比如在上图中0.96oled屏幕的控制器就是SSD1306。
显示名称
这个就是你oled屏幕名称,比如在上图中0.96oled屏幕没有提供名称,所以使用NONAME
。
关于这个参数,我查资料基本上都是一笔带过,建议咨询下店家。如果你知道的话请在留言告诉我!
缓冲模式
缓冲模式有三种:
1
,页面缓冲模式(图片循环)。数字表示在微控制器RAM中保留几页。缓冲越多,速度越快。2
,同上,但比1
的速度快两倍。F
,全屏缓冲模式。
页面缓冲模式(图片循环)
利弊
- 可以使用所有图形程序
- 只需要一点RAM
- 慢
设定
从此处使用U8g2构造函数。构造函数必须包含“ 1”或“ 2”字符。例如:
U8G2_ST7920_128X64_
1_SW_SPI(rotation, clock, data, cs [, reset])
用法
- 调用u8g2.firstPage()。
- 开始做一个do-while循环
- 在循环体内:用常规的绘制命令绘制一些东西。
- 只要u8g2.nextPage()返回true,就循环。
注意:始终在循环体内创建相同的图片。在这里查看详细信息。
全屏缓冲模式
利弊
- 快速
- 可以使用所有图形程序
- 需要大量的RAM
设定
从此处使用U8g2构造函数。构造函数必须包含“ F”字符。例如:
U8G2_ST7920_128X64_
F_SW_SPI(rotation, clock, data, cs [, reset])
用法
- 使用u8g2.clearBuffer()清除缓冲区。
- 用通常的绘制命令绘制一些东西。
- 使用u8g2.sendBuffer()将缓冲区发送到显示器。
U8x8字符模式(仅支持字符)
ps: U8x8字符模式使用其他方式的构造函数,详情查看这里
利弊
- 快速
- 无需RAM
- 无法显示图片
- 不适用于所有显示器
设定
从此处使用U8x8构造函数。例如:
U8X8_ST7565_EA_DOGM128_4W_SW_SPI(clock, data, cs, dc [, reset])
用法
所有绘制命令均直接写入显示屏。
通讯方式
4W_SW_SPI
,4线(时钟,数据,CS和DC)软件模拟SPI4W_HW_SPI
,4线(时钟,数据,CS和DC)硬件SPI(基于Arduino SPI库)2ND_4W_HW_SPI
,如果支持,第二个4线硬件SPI(基于Arduino SPI库)3W_SW_SPI
,3线(时钟,数据和CS)软件模拟SPISW_I2C
,软件模拟I2C/TWIHW_I2C
,硬件I2C(基于Arduino Wire库)2ND_HW_I2C
,如果支持,请使用第二个硬件I2C(Arduino Wire lib)6800
,8位并行接口,6800协议8080
,8位并行接口,8080协议
通讯方式参数
- 4W\_SW\_SPI(旋转,时钟,数据,CS,DC ,[复位引脚])
- 4W\_HW\_SPI(旋转,CS,DC ,[复位引脚])
- 2ND\_4W\_HW_SPI(旋转,CS,DC ,[复位引脚])
- 3W\_SW\_SPI(旋转,时钟,数据,CS ,[复位引脚])
- SW_I2C(旋转,时钟,数据,[复位引脚])
- HW_I2C(旋转,[复位引脚,[时钟,数据]])
- 2ND\_HW\_I2C(旋转,[复位引脚])
- 6800(旋转,d0,d1,d2,d3,d4,d5,d6,d7,使能,CS,DC ,[复位引脚])
- 8080(旋转,d0,d1,d2,d3,d4,d5,d6,d7,使能,CS,DC ,[复位引脚])
参数说明
旋转
,控制屏幕方向U8G2_R0
,不旋转,横向U8G2_R1
,顺时针旋转90度U8G2_R2
,顺时针旋转180度U8G2_R3
,顺时针旋转270度U8G2_MIRROR
,无旋转,横向,显示内容已镜像(v2.6.x)
时钟
,SPI或I2C时钟线,例如:SCL,SCLK,...
数据
,SPI或I2C数据线,例如:SDA,MOSI,SDIN,...
D0 ~ D7
,并行接口的数据线,例如:D0 ~ D7
CS
,片选线,例如:CS
DC
,数据/命令选择行(寄存器选择),例如:D/C,A0,RS,...
使能
,8080界面为“Write”;6800界面为“enable” ,例如:8080:WR,6800:E
复位引脚
, 复位