diff --git a/main/Kconfig.projbuild b/main/Kconfig.projbuild index edf65060..04902f65 100644 --- a/main/Kconfig.projbuild +++ b/main/Kconfig.projbuild @@ -166,6 +166,8 @@ choice DISPLAY_OLED_TYPE bool "SSD1306, 分辨率128*32" config OLED_SSD1306_128X64 bool "SSD1306, 分辨率128*64" + config OLED_SH1106_128X64 + bool "SH1106, 分辨率128*64" endchoice choice DISPLAY_LCD_TYPE diff --git a/main/boards/bread-compact-wifi/compact_wifi_board.cc b/main/boards/bread-compact-wifi/compact_wifi_board.cc index 4a0b1b52..04dc0455 100644 --- a/main/boards/bread-compact-wifi/compact_wifi_board.cc +++ b/main/boards/bread-compact-wifi/compact_wifi_board.cc @@ -15,6 +15,10 @@ #include #include +#ifdef SH1106 +#include +#endif + #define TAG "CompactWifiBoard" LV_FONT_DECLARE(font_puhui_14_1); @@ -76,7 +80,11 @@ private: }; panel_config.vendor_config = &ssd1306_config; +#ifdef SH1106 + ESP_ERROR_CHECK(esp_lcd_new_panel_sh1106(panel_io_, &panel_config, &panel_)); +#else ESP_ERROR_CHECK(esp_lcd_new_panel_ssd1306(panel_io_, &panel_config, &panel_)); +#endif ESP_LOGI(TAG, "SSD1306 driver installed"); // Reset the display diff --git a/main/boards/bread-compact-wifi/config.h b/main/boards/bread-compact-wifi/config.h index 7116f1b8..f0e2724f 100644 --- a/main/boards/bread-compact-wifi/config.h +++ b/main/boards/bread-compact-wifi/config.h @@ -42,6 +42,9 @@ #define DISPLAY_HEIGHT 32 #elif CONFIG_OLED_SSD1306_128X64 #define DISPLAY_HEIGHT 64 +#elif CONFIG_OLED_SH1106_128X64 +#define DISPLAY_HEIGHT 64 +#define SH1106 #else #error "未选择 OLED 屏幕类型" #endif diff --git a/main/idf_component.yml b/main/idf_component.yml index 138021cd..c1b72716 100644 --- a/main/idf_component.yml +++ b/main/idf_component.yml @@ -20,6 +20,7 @@ dependencies: lvgl/lvgl: "~9.2.2" esp_lvgl_port: "~2.4.4" espressif/esp_io_expander_tca95xx_16bit: "^2.0.0" + tny-robotics/sh1106-esp-idf: ^1.0.0 ## Required IDF version idf: version: ">=5.3"