#include <U8g2lib.h>
#include <TM1637.h>
// 初始化 U8g2 对象
// U8G2_SH1107_128X128_1_HW_I2C 构造参数说明:
// 第一个参数:旋转方向 (U8G2_R0, U8G2_R1, U8G2_R2, U8G2_R3)
// 第二个参数:reset 引脚,对于 Grove 接口通常不需要硬件复位,设为 U8X8_PIN_NONE
U8G2_SH1107_128X128_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
void setup(void) {
u8g2.begin();
// 设置字体
u8g2.setFont(u8g2_font_ncenB14_tr);
}
void loop(void) {
u8g2.clearBuffer(); // 清除内部缓冲区
// 1. 显示标题
u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.drawStr(10, 20, "SH1107");
// 2. 显示状态信息
u8g2.setFont(u8g2_font_ncenB10_tr);
u8g2.drawStr(10, 40, "Grove OLED");
u8g2.drawStr(10, 55, "128x128 Pixel");
// 3. 绘制图形元素
u8g2.drawFrame(0, 65, 127, 62); // 外框
u8g2.drawBox(10, 75, 20, 20); // 实心矩形
u8g2.drawCircle(64, 85, 15, U8G2_DRAW_ALL); // 圆形
// 4. 显示动态计数(模拟)
static int counter = 0;
char buf[10];
sprintf(buf, "Count: %d", counter++);
u8g2.drawStr(10, 115, buf);
u8g2.sendBuffer(); // 将缓冲区内容传输到显示屏
delay(1000); // 延迟1秒
}
Loading
grove-oled-sh1107
grove-oled-sh1107