U8g2初始化(如何选择oled构造函数)

warning: 这篇文章距离上次修改已过1537天,其中的内容可能已经有所变动。
注意: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.png2019-12-29_132031.png


屏幕分辨率

这个就是你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])

用法

  1. 调用u8g2.firstPage()
  2. 开始做一个do-while循环
  3. 在循环体内:用常规的绘制命令绘制一些东西。
  4. 只要u8g2.nextPage()返回true,就循环。

注意:始终在循环体内创建相同的图片。在这里查看详细信息。


全屏缓冲模式

利弊

  • 快速
  • 可以使用所有图形程序
  • 需要大量的RAM

设定

此处使用U8g2构造函数。构造函数必须包含“ F”字符。例如:

U8G2_ST7920_128X64_F_SW_SPI(rotation, clock, data, cs [, reset])

用法

  1. 使用u8g2.clearBuffer()清除缓冲区。
  2. 用通常的绘制命令绘制一些东西。
  3. 使用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)软件模拟SPI
  • 4W_HW_SPI ,4线(时钟,数据,CS和DC)硬件SPI(基于Arduino SPI库)
  • 2ND_4W_HW_SPI ,如果支持,第二个4线硬件SPI(基于Arduino SPI库)
  • 3W_SW_SPI ,3线(时钟,数据和CS)软件模拟SPI
  • SW_I2C ,软件模拟I2C/TWI
  • HW_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
  • 复位引脚 , 复位
评论已关闭