u8g2 函数参考手册

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
  2. clearDisplay
  3. setPowerSave
  • 参数: -
  • 返回: 总是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会打电话
  1. home
  2. clearDisplay
  3. 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&#
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值