#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
// 定义 OLED 的宽度和高度(根据你的 OLED 分辨率调整)
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
// 创建 OLED 对象(使用 IIC 通信,地址默认为 0x3C)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
// 初始化串口(用于调试)
Serial.begin(115200);
Serial.println("OLED IIC Test");
// 初始化 IIC 通信(默认 SDA=21, SCL=22,频率 400kHz)
Wire.begin(21, 20); // SDA, SCL
// 初始化 OLED 显示屏
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // 地址 0x3C
Serial.println("SSD1306 allocation failed");
for (;;)
; // 初始化失败,卡死
}
// 清屏并显示启动信息
display.clearDisplay();
display.setTextSize(1); // 文本大小
display.setTextColor(WHITE); // 文本颜色(白色)
display.setCursor(0, 0); // 文本起始位置
display.println("ESP32-S3 OLED");
display.println("IIC Test");
display.display(); // 更新显示
}
void loop() {
// 显示动态内容(例如计数器)
static int counter = 0;
display.clearDisplay();
display.setTextSize(2);
display.setCursor(0, 20);
display.print("Count: ");
display.print(counter);
display.display();
counter++;
delay(1000); // 每秒更新一次
}