--- notion-id: 260ca4d7-cb7b-8070-9d8c-d0c42e14bc03 --- [Dasai Mochi robot V2](Dasai%20Mochi%20robot%20V2.md) [ESP32-S3-N16R8配置文件](ESP32-S3-N16R8配置文件.md) [ESP32【Wifi配网代码】](ESP32【Wifi配网代码】.md) [ESP32 【Dasai Mochi】](ESP32%20【Dasai%20Mochi】.md) [ESP32+PCM5102A I2S module【蓝牙音响】](ESP32+PCM5102A%20I2S%20module【蓝牙音响】.md) [PlatformIO](PlatformIO.md) > [!note]+ # 屏幕【SH1106】测试代码 > ```sql > #include > #include > #include > > // 定义屏幕参数 > #define SCREEN_WIDTH 128 > #define SCREEN_HEIGHT 64 > #define OLED_RESET -1 // 不使用复位引脚 > > // 定义I2C引脚 > #define I2C_SDA 20 > #define I2C_SCL 21 > > // 创建显示对象 - 使用正确的SH1106驱动 > Adafruit_SH1106G display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); > > void setup() { > Serial.begin(115200); > Serial.println("ESP32C3 SH1106 OLED测试"); > > // 初始化I2C > Wire.begin(I2C_SDA, I2C_SCL); > > // 降低I2C速度以提高稳定性 > Wire.setClock(400000); // 400kHz,如果不稳定可降至100000 > > // 等待OLED初始化 > delay(250); > > // 初始化SH1106 OLED > display.begin(0x3C, true); // 0x3C是常见的I2C地址,如果不工作请尝试0x3D > > // 设置显示方向和对比度 > display.setRotation(0); > display.setContrast(128); // 设置对比度 (0-255) > > // 清除显示 > display.clearDisplay(); > > // 设置文本属性 > display.setTextSize(1); // 正常1:1文本大小 > display.setTextColor(SH110X_WHITE); > display.setCursor(0, 0); > > // 显示文本 > display.println("ESP32C3SUPERMINI"); > display.println("-------------"); > display.println("SH1106 OLED"); > display.println("128x64 OLDTEST"); > display.println("-------------"); > display.println("TIME:"); > display.println("12:34:56"); > > // 显示所有绘制的内容 > display.display(); > > Serial.println("初始化完成"); > } > > void loop() { > // 在这里可以添加动态更新内容的代码 > delay(1000); > > // 例如:更新显示屏的一部分来显示运行时间 > display.fillRect(0, 48, 128, 16, SH110X_BLACK); // 清除底部区域 > display.setCursor(0, 48); > display.print("RUNTIME: "); > display.print(millis() / 1000); > display.println("Sec"); > display.display(); > } > > ```