首页天道酬勤g82指令的功能和格式,u8g2显示图片

g82指令的功能和格式,u8g2显示图片

张世龙 05-12 10:36 23次浏览

3https://github.com/oli Kraus/u8g2/wiki/setup _ tutorial

本系列文章索引:

u8g2图形库(1):u8g2图形库概述

u8g2图形库(2):u8g2入门指南

u8g2图形库(3)将u8g2移植到STM32平台

文章目录如何使用U8g2库显示器在显示器上选择物理总线数据线U8g2以初始化U8g2全缓存(页缓存(page buffer )和u8x8模式全屏缓存模式)

如何在显示器上使用U8g2库显示器

您的显示器控制器(注意:需要知道驱动集成电路)和显示器分辨率) u8g2不支持“无控制器”显示器。 本文的示例使用ST7920 128x64显示器。 控制器为ST7920,分辨率为128x64的液晶屏。

在U8g2中,必须选择相应的构造函数才能正确初始化和显示。 构造函数列表: c setup/arduino构造函数列表

本文的示例是ST7920 128x64部分

用于选择物理总线图像的信息必须发送到显示器,显示控制器通过物理总线接收这些数据(通常是两条或多条数据线)、通信协议和命令序列。 通常,一个显示器支持多条总线。 必须选择一个,并正确初始化。

物理总线由特定IO端口访问的高(5v )低级(0V )决定。 例如,SSSD1306 OLED、PCB上的BS0、BS1、BS2用于选择物理总线。

左侧的小表格说明了如何连接不同的物理总线。 典型的公共汽车如下

3SPI、3线SPI:3条信号线串行接口:时钟、数据和片与4SPI、4线SPI:3线相同,但增加了一条指令数据线(D/C、RS或a0(I2c、 IIC或twi )两条信号线的集成电路总线:时钟(SCL )和数据(SDA ) 8080 ) 8位数据总线需要8条数据线、片选择线和读写数据线6800 )的其他8bit纵向,但需要协议

公共汽车是固定的,有时不能更改。 例如,以下SSD1306显示器:

可以根据其IO端口数和丝印推测显示器的总线。 在上图中,因为有SCL和SDA标签的丝印,所以看起来像IIC总线。

在我们的第一个例子中,PCB看起来如下。

根据ST7920数据文档,PSB引脚用于确定8位或SPI总线。 SPI总线时,RS端子为芯片选择,e端子为时钟输入,RW为数据线。

注:在上图中,PSB连接到BLK,BLK连接到GND。 所以ST7920通过SPI进行通信。

要通过数据线在Arduino上显示图像信息,必须将显示器连接到Arduino,并根据选择的物理总线将相应的数字电缆连接到Arduino的输出端。

总的来说,U8g2可以使用任何Arduino板上的输出端子,所以与使用哪个输出无关(但是,可以灵活地选择特定的IO端口,或者使用外围设备进行输出来提高通信速度)。

建议写入引脚编号的对应关系,如显示控制器ST7920。

DisplayArduino pin NumberSE,Clock13RW,Data,MOSI11RS,Chip Seclect10RST,Reset8注意: RS (在PCB上丝印RS )意味着“寄存器选择”

请记住将PSB引脚连接到GND,并查看数据手册,为显示器的V0输入引脚提供正确的电压。

U8g2初始化U8g2需要知道硬件管脚的对应关系,管脚号作为参数提供给U8g2的构造函数,每个参数对应于每个管脚。

根据此列表,构造函数具有以下模板(

u8g2_ ST 7920 _ 128 x64 _1_ SW _ spiu 8g2(旋转、时钟、数据、cs [,reset] ) ) ) ) ) ) )

在“旋转”参数之后,构造函数接收时钟管脚号、数据管脚号和芯片选择信号,最后一条复位信号线是可选的。

示例包含类似的构造函数。 请取消任何注释,并根据需要更新针号。

u8g2_ ST 7920 _ 128 x64 _1_ SW _ spiu 8g2(u8g2_ r0、13、11、10、8 );

完整的例子如下。

# include arduino.h # include u8g2lib.h # includes pi.h # include wire.hu8g2_ ST 7920 _ 128 x64 _1_ SW _ SPI _ 8g 2 (VO

id loop(void) { u8g2.firstPage(); do { u8g2.setFont(u8g2_font_ncenB14_tr); u8g2.drawStr(0,24,"Hello World!"); } while ( u8g2.nextPage() );} U8g2 完整缓存(full buffer),页面缓存(page buffer)和u8x8 模式

U8g2 支持3中不同的绘图模式:

全屏缓存模式页面模式(U8glib 图片轮询)U8c8,纯字符模式 全屏缓存模式(full buffer) 优缺点 快速可使用所有的图形程序需要大量的内存(RAM) 初始化

从 这里 选择一个 U8g2 的构造器,全屏缓存模式的构造器包含了“F”,比如:
U8G2_ST7920_128X64_ F _SW_SPI(rotation, clock, data, cs [, reset])

使用 清除缓存内容:u8g2.clearBuffer()。使用绘图指令绘制图形发送缓存数据给显示器以显示:u8g2.sendBuffer()。 示例 void setup(void) { u8g2.begin();}void loop(void) { u8g2.clearBuffer(); u8g2.setFont(u8g2_font_ncenB14_tr); u8g2.drawStr(0,20,"Hello World!"); u8g2.sendBuffer();} 页面缓存模式(图片轮询) 优缺点 所有的图形程序可用要求少量的内存(RAM)速度慢 初始化

从 这里 选择一个 U8g2 的构造器,全屏缓存模式的构造器包含了“1”,或者“2,”比如:
U8G2_ST7920_128X64_ 1 _SW_SPI(rotation, clock, data, cs [, reset])

使用 调用 u8g2.firstPage()运行一个 do-while 循环在循环体内绘制一些图形循环到U8g2.nextPage()返回真结束

注:在循环体内总是绘制同一张图片。相见:这里。

示例 void setup(void) { u8g2.begin();}void loop(void) { u8g2.firstPage(); do { u8g2.setFont(u8g2_font_ncenB14_tr); u8g2.drawStr(0,24,"Hello World!"); } while ( u8g2.nextPage() );} U8x8 字符模式 优缺点 快速不需要内存(RAM)不能绘制图形不支持所有显示控制器 初始化

从之类选择一个U8x8 构造器,比如:
U8X8_ST7565_EA_DOGM128_4W_SW_SPI u8x8(clock, data, cs, dc [, reset]

使用

所有的绘制指令直接写入显示器

示例 void setup(void) { u8x8.begin();}void loop(void) { u8x8.setFont(u8x8_font_chroma48medium8_r); u8x8.drawString(0,1,"Hello World!");}
spring整合log4j,log4j2日志路径配置