u8g2 函数参考手册
原文 2021.10.19
C++/Arduino: 配置示例
#include <Arduino.h>
#include <SPI.h>
#include <U8g2lib.h>
U8G2_SSD1306_128X64_NONAME_1_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);
void setup(void) {
u8g2.begin();
}
void loop(void) {
u8g2.firstPage();
do {
u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.drawStr(0,15,"Hello World!");
} while ( u8g2.nextPage() );
delay(1000);
}
构造函数的第一个参数指定显示的基本布局:
布局Layout | 描述Description |
---|---|
U8G2_R0 | 不旋转, landscape |
U8G2_R1 | 90度顺时针旋转 |
U8G2_R2 | 180 degree clockwise rotation |
U8G2_R3 | 270 degree clockwise rotation |
U8G2_MIRROR | 没有旋转,景观,显示内容被镜像(v2.6.x) |
U8G2_MIRROR_VERTICAL | 显示内容垂直镜像(v2.29.x) |
所有其他参数都表示显示器的接线。
可用构造函数列在安装指南.
注意:U8G2_镜像与SetFlipMode
主要函数
环境配置 begin
- C Prototype:
bool U8G2::begin(void)
bool U8G2::begin(uint8_t menu_select_pin, uint8_t menu_next_pin, uint8_t menu_prev_pin, uint8_t menu_up_pin = U8X8_PIN_NONE, uint8_t menu_down_pin = U8X8_PIN_NONE, uint8_t menu_home_pin = U8X8_PIN_NONE)
- 描述: 简化了Arduino环境显示的设置过程。见安装指南用于选择合适的U8g2构造函数。此功能将重置、配置、清除和禁用显示器的省电模式。U8g2还可以检测按键事件。最多可观察到六个按钮。Arduino引脚号可以在这里分配。使用U8X8_PIN_NONE如果没有连接到引脚的开关。开关必须将GPIO引脚与GND(低活动按钮)连接起来。使用GetMenuEvent检查任何按键事件。选择、下一步和prev引脚也是用户界面过程所必需的(例如用户接口消息 ). begin会打电话
- 参数: -
- 返回: 总是1/真
- 另见: InitDisplay SetPowerSave clearDisplay U8X8::begin
- 例子:
void setup(void) {
u8g2.begin();
}
void loop(void) {
u8g2.firstPage();
do {
u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.drawStr(0,15,"Hello World!");
} while ( u8g2.nextPage() );
delay(1000);
清除显示 clear
- C++/Arduino:
void U8G2::clear(void)
- 描述: 清除显示和缓冲区上的所有像素。将光标放置在print函数进入左上角。clear会打电话
- home
- clearDisplay
- clearBuffer
- 参数:
- 返回: -
- 另见: print home clearBuffer
清除内存 clearBuffer
- C++/Arduino:
void U8G2::clearBuffer(void)
- C:
void u8g2_ClearBuffer(u8g2_t *u8g2);
- 描述: 清除内存帧缓冲区中的所有像素。使用SendBuffer若要将已清除的帧缓冲区传输到显示器,请执行以下操作。在大多数情况下,此过程仅适用于微控制器RAM中的完整帧缓冲区(带有缓冲区选项“f”的构造函数,请参见这里)。此过程还将发送一条刷新消息(刷新显示)到电子纸张/电子墨水设备。
- 参数:
- u8g2指向u8g2结构的指针。
- 返回: -
- 另见: SendBuffer
- 例子:
void loop(void) {
u8g2.clearBuffer();
// ... write something to the buffer
u8g2.sendBuffer();
delay(1000);
清除缓冲区 clearDisplay
- C++/Arduino:
void U8G2::clearDisplay(void)
- C:
void u8g2_ClearDisplay(u8g2_t *u8g2);
- 描述: 清除内部缓冲区和连接显示中的所有像素。此过程也将从begin。通常,除了init过程之外,不需要调用此函数。其他程序,如SendBuffer和nextPage也将覆盖(并清除)显示。
- 参数:
- u8g2指向u8g2结构的指针。
- 返回: -
- 注:
- 此命令可用于所有构造函数(F, 1, 2).
- 不要在图片循环中使用此命令(在firstPage和nextPage).
- 另见: begin
禁用UTF8 disableUTF8Print
- C++/Arduino:
void U8G2::disableUTF8Print(void)
- 描述: 禁用UTF 8对Arduino的支持print功能。这也是默认设置。
- 参数: -
- 返回: -
- 另见: print, EnableUTF8Print
绘制位图 drawBitmap
- C++/Arduino:
void U8G2::drawBitmap(u8g2_uint_t x, u8g2_uint_t y, u8g2_uint_t cnt, u8g2_uint_t h, const uint8_t *bitmap)
- C:
void u8g2_DrawBitmap(u8g2_t *u8g2, u8g2_uint_t x, u8g2_uint_t y, u8g2_uint_t cnt, u8g2_uint_t h, const uint8_t *bitmap)
- 描述: 在指定的x/y位置(位图左上角)绘制位图。位图的一部分可能在显示边界之外。位图由数组指定bitmap。清除比特的意思是:不要绘制像素。数组中的设置位表示:用当前颜色索引写入像素。对于单色显示器,颜色索引0将清除一个像素(在实体模式下),而颜色索引1将设置一个像素。
- 参数:
- u8g2指向u8g2结构(仅C接口)。
- x*X位置(位图的左位置)。
- y*y-位置(位图的上部位置)。
- cnt::位图在水平方向上的字节数。位图的宽度为cnt*8.
- h*位图的高度。
- 返回: -
- 注: 此功能不应再使用,请使用drawXBM相反。
- 另见: drawXBM SetBitmapMode
画实心框框drawBox
- C++/Arduino:
void U8G2::drawBox(u8g2_uint_t x, u8g2_uint_t y, u8g2_uint_t w, u8g2_uint_t h)
- C:
void u8g2_DrawBox(u8g2_t *u8g2, u8g2_uint_t x, u8g2_uint_t y, u8g2_uint_t w, u8g2_uint_t h)
- 描述: 画一个盒子(满框),从x/y位置开始(左上角)。这个盒子有宽度w和高度h。盒子的部分可以超出显示边界。此过程将使用当前颜色(SetDrawColor)画盒子。对于单色显示器,颜色索引0将清除像素,而颜色索引1将设置像素。
- 参数:
- u8g2指向u8g2结构(仅C接口)。
- x:左上缘X位。
- y:y-左上角位置。
- w:盒子的宽度。
- h:盒子的高度。
- 返回:
- 另见: drawFrame SetDrawColor
- 例子:
u8g2.drawBox(3,7,25,15);
文本周围画框架 Drag ButtonUTF 8
- C++/Arduino:
void U8G2::drawButtonUTF8(u8g2_uint_t x, u8g2_uint_t y, u8g2_uint_t flags, u8g2_uint_t width, u8g2_uint_t padding_h, u8g2_uint_t padding_v, const char *text)
- C:
void u8g2_DrawButtonUTF8(u8g2_t *u8g2, u8g2_uint_t x, u8g2_uint_t y, u8g2_uint_t flags, u8g2_uint_t width, u8g2_uint_t padding_h, u8g2_uint_t padding_v, const char *text)
- 描述: 在提供的文本周围画一个框架/框。这类似于drawUTF8,但在文本中添加了一些装饰。
旗子 描述
U8G2_BTN_BW0 文本周围没有框架
U8G2_BTN_BW1 文本周围的帧,1像素边框宽度
U8G2_BTN_BW2 文本周围的帧,2像素边框宽度
U8G2_BTN_BW3 在文本周围帧,3像素边框宽度
U8G2_BTN_SHADOW0 启用阴影,没有与框架的间隙。
U8G2_BTN_SHADOW1 启用阴影,与帧的1像素间距
U8G2_BTN_SHADOW2 启用阴影,与帧的2像素间距
U8G2_BTN_INV 倒置文本
U8G2_BTN_HCENTER 在框架内将文本居中,并将引用位置更改为文本的中心。 - 参数:
- u8g2指向u8g2结构(仅C接口)。
- x, y显示中第一个字符的位置。如果U8G2_BTN_HCENTER则这是文本的中心位置。
- flags*见上表。多个标志可以与“或”运算符一起使用。
- width文本的最小宽度。如果为0(或低于文本宽度),则对框架使用文本宽度。
- padding_h::课文前后的额外空间。
- padding_v::课文上方和下面的额外空间。
- textUTF 8编码字符串,将在显示上绘制。
- 返回:
- 另见: setFont drawUTF8
- 例1:左调整文本2像素空间(padding_h=2和padding_v=2)周围的文本和一个2像素的边框(BW2).
u8g2.setFont(u8g2_font_helvR08_tr);
u8g2.drawButtonUTF8(62, 20, U8G2_BTN_BW2, 0, 2, 2, "Btn" );
- 例2:居中文本
u8g2.setFont(u8g2_font_helvR08_tr);
u8g2.drawButtonUTF8(62, 20, U8G2_BTN_HCENTER|U8G2_BTN_BW2, 34, 2, 2, "Btn" );
- 例3:带阴影的居中文本。注: 阴影厚度总是等于边框的宽度。帧和阴影之间的间隔由标志指定。
u8g2.setFont(u8g2_font_helvR08_tr);
u8g2.drawButtonUTF8(62, 20, U8G2_BTN_SHADOW1|U8G2_BTN_HCENTER|U8G2_BTN_BW2, 34, 2, 2, "Btn" );
- 例4:左调整的文本周围有2个像素的空间。文本(包括2像素空间)被倒置。
u8g2.setFont(u8g2_font_helvR08_tr);
u8g2.drawButtonUTF8(62, 20, U8G2_BTN_INV, 0, 2, 2, "Btn" );
- 例5:左调整的倒文本有2个像素的空间和2个像素的边框。边框只是在像素空间周围添加。
u8g2.setFont(u8g2_font_helvR08_tr);
u8g2.drawButtonUTF8(62, 20, U8G2_BTN_INV|U8G2_BTN_BW2, 0, 2, 2, "Btn&#