1.U8g2库介绍
U8g2库是嵌入式设备单色图形库,支持非常多的嵌入式设备平台,如单片机、STM32、Arduino等,支持大部分主流的单色OLED和LCD显示控制器,如我们常见的SSD1306。其包括了多种图形的绘制,支持多种字体。
- u8g2.begin():U8g2构造函数。
- u8g2.clean():清除屏幕显示,清除缓冲区,光标回到原点位置。
- u8g2.setFont():设置字体。
- u8g2.drawStr():绘制字符串。
- u8g2.firstPage()/nextPage():循环刷新显示。
2.滚动显示
https://zhuanlan.zhihu.com/p/68615316?from_voters_page=true
点击查看字符滚动连接
主要大概如下:
/*
效果:1306 OLED 自上而下滚动显示 Hello World
*/
#include <Arduino.h>
#include <U8g2lib.h>
#include <Wire.h>
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE); // All Boards without Reset of the Display
int yPos = 0; //初始化y轴的坐标系
void setup(void) {
u8g2.begin();
u8g2.setFont(u8g2_font_ncenB14_tr); // 设置字体
}
void loop() {
u8g2.firstPage();
do {
draw();
} while ( u8g2.nextPage() );
if (yPos < 83) { //y纵轴的坐标系最大值
yPos++; //从0开始,每次循环+1,向下滚动
}
else {
yPos = 0;//滚到底部时yPos归零,重新循环
}
}
void draw() {
u8g2.drawStr(0, yPos, "Hello World");
}
-
u8g2.clear() // 清空缓冲区内的所有像素点;
-
u8g2.clearBuffer() //清空缓冲区内的所有像素,接着用
-
sendBuffer() 方法来把缓冲区内容显示出来;
-
u8g2.Print() //在当前光标位置输出文字。光标位置可
以用 -
setCursor() 函数设定。字体可以用setFont() 函数。
-
u8g2.drawStr(x, y, str) //绘制字符串,它能输出什么在屏上。取决于它的setFont被设置的字体集。
-
u8g2.drawBox (x, y, w, h) //画一个实心方形,w 为宽,h 为高u
-
8g2.firstPage() 和 u8g2.nextPage() //绘图库的图片循环需要放在这两个函数内部 u
-
8g2.drawCircle(x, y, rad, opt) //画个空心圆,可选4个方向的半圆