arduino u8g2库绘制模式详解

Full screen buffer mode
  • 绘制速度快
  • 所有的绘制方法都可以使用
  • 需要大量的ram空间
  • 构造器需要带F
  • U8G2_ST7920_128X64_F_SW_SPI(rotation, clock, data, cs [, reset])

usage

  1. 清除缓冲区 u8g2.clearBuffer()
  2. 操作一些绘制方法
  3. 发送缓冲区的内容到显示器 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();
}
Page mode
  • 绘制速度慢
  • 所有的绘制方法都可以使用
  • 需要少量的ram空间
  • 构造器必须带有1或2
U8G2_ST7920_128X64_ 1 _SW_SPI(rotation, clock, data, cs [, reset])
  1. 调用 u8g2.firstPage()
  2. 开始一个 do while 循环
  3. 在循环内部 操作一些绘制方法
  4. 不断判断 u8g2.nextPage()
  5. 如何切换为nextpage? 这个判断的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 character mode
  • 绘制速度快
  • 并不是对所有的显示器都有效
  • 图形绘制不可用
  • 不需要ram空间

使用u8x8构造器

U8X8_ST7565_EA_DOGM128_4W_SW_SPI(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!");
}

 

posted @ 2025-01-14 11:41  mcwhirr  阅读(359)  评论(0)    收藏  举报