Răsfoiți Sursa

add:u8g2 demo更新

Dozingfiretruck 4 ani în urmă
părinte
comite
89411e50db

+ 14 - 13
demo/u8g2/Air101/main.lua

@@ -24,15 +24,16 @@ local TAG = "main"
 -- 初始化显示屏
 log.info(TAG, "init ssd1306")
 
--- u8g2.begin({mode="i2c_sw", pin0=1, pin1=4}) -- 通过PA1 SLK/PA4 SDA模拟, 也可以用硬件i2c脚
-u8g2.begin({mode="i2c_hw", i2c_id=0, i2c_speed = i2c.FAST}) -- 硬件i2c
+-- u8g2.begin({ic ="ssd1306",mode="i2c_sw", pin0=1, pin1=4}) -- 通过PA1 SLK/PA4 SDA模拟, 也可以用硬件i2c脚
+u8g2.begin({ic ="ssd1306", mode="i2c_hw", i2c_id=0, i2c_speed = i2c.FAST}) -- 硬件i2c
+--u8g2.begin({ic ="st7567",mode="spi_hw_4pin",spi_id=1,spi_res=19,spi_dc=17,cs=20})
 
 --u8g2.begin("ssd1306")
 u8g2.SetFontMode(1)
 u8g2.ClearBuffer()
-u8g2.SetFont(u8g2.font_ncenB08_tr)
+u8g2.SetFont(u8g2.font_opposansm8)
 u8g2.DrawUTF8("U8g2+LuatOS", 32, 22)
-u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+u8g2.SetFont(u8g2.font_opposansm12_chinese)
 u8g2.DrawUTF8("中文测试", 40, 38)
 u8g2.SendBuffer()
 
@@ -40,17 +41,17 @@ u8g2.SendBuffer()
 sys.taskInit(function()
     sys.wait(2000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("屏幕宽度", 20, 24)
     u8g2.DrawUTF8("屏幕高度", 20, 42)
-    u8g2.SetFont(u8g2.font_ncenB08_tr)
+    u8g2.SetFont(u8g2.font_opposansm8)
     u8g2.DrawUTF8(":"..u8g2.GetDisplayWidth(), 72, 24)
     u8g2.DrawUTF8(":"..u8g2.GetDisplayHeight(), 72, 42)
     u8g2.SendBuffer()
 
     sys.wait(2000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("画线测试:", 30, 24)
     for i = 0, 128, 8 do
         u8g2.DrawLine(0,40,i,40)
@@ -60,7 +61,7 @@ sys.taskInit(function()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("画圆测试:", 30, 24)
     u8g2.DrawCircle(30,50,10,15)
     u8g2.DrawDisc(90,50,10,15)
@@ -68,7 +69,7 @@ sys.taskInit(function()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("椭圆测试:", 30, 24)
     u8g2.DrawEllipse(30,50,6,10,15)
     u8g2.DrawFilledEllipse(90,50,6,10,15)
@@ -76,7 +77,7 @@ sys.taskInit(function()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("方框测试:", 30, 24)
     u8g2.DrawBox(30,40,30,24)
     u8g2.DrawFrame(90,40,30,24)
@@ -84,7 +85,7 @@ sys.taskInit(function()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("圆角方框:", 30, 24)
     u8g2.DrawRBox(30,40,30,24,8)
     u8g2.DrawRFrame(90,40,30,24,8)
@@ -92,7 +93,7 @@ sys.taskInit(function()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("符号测试:", 30, 24)
     u8g2.DrawUTF8("显示雪人", 30, 38)
     u8g2.SetFont(u8g2.font_unifont_t_symbols)
@@ -101,7 +102,7 @@ sys.taskInit(function()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("三角测试:", 30, 24)
     u8g2.DrawTriangle(30,60, 60,30, 90,60)
     u8g2.SendBuffer()

+ 12 - 12
demo/u8g2/Air302/main.lua

@@ -19,15 +19,15 @@ local TAG = "main"
 -- 初始化显示屏
 log.info(TAG, "init ssd1306")
 
-u8g2.begin({mode="i2c_sw", pin0=17, pin1=18}) -- 通过GPIO17 SLK/GPIO18 SDA模拟, 也可以用硬件i2c脚
--- u8g2.begin({mode="i2c_hw", i2c_id=0, i2c_speed = i2c.FAST}) -- 硬件i2c
+u8g2.begin({ic ="ssd1306",mode="i2c_sw", pin0=17, pin1=18}) -- 通过GPIO17 SLK/GPIO18 SDA模拟, 也可以用硬件i2c脚
+-- u8g2.begin({ic ="ssd1306",mode="i2c_hw", i2c_id=0, i2c_speed = i2c.FAST}) -- 硬件i2c
 
 --u8g2.begin("ssd1306")
 u8g2.SetFontMode(1)
 u8g2.ClearBuffer()
-u8g2.SetFont(u8g2.font_ncenB08_tr)
+u8g2.SetFont(u8g2.font_opposansm8)
 u8g2.DrawUTF8("U8g2+LuatOS", 32, 22)
-u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+u8g2.SetFont(u8g2.font_opposansm12_chinese)
 u8g2.DrawUTF8("中文测试", 40, 38)
 u8g2.SendBuffer()
 
@@ -35,7 +35,7 @@ u8g2.SendBuffer()
 sys.taskInit(function()
     sys.wait(2000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("屏幕宽度", 20, 24)
     u8g2.DrawUTF8("屏幕高度", 20, 42)
     u8g2.SetFont(u8g2.font_ncenB08_tr)
@@ -45,7 +45,7 @@ sys.taskInit(function()
 
     sys.wait(2000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("画线测试:", 30, 24)
     for i = 0, 128, 8 do
         u8g2.DrawLine(0,40,i,40)
@@ -55,7 +55,7 @@ sys.taskInit(function()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("画圆测试:", 30, 24)
     u8g2.DrawCircle(30,50,10,15)
     u8g2.DrawDisc(90,50,10,15)
@@ -63,7 +63,7 @@ sys.taskInit(function()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("椭圆测试:", 30, 24)
     u8g2.DrawEllipse(30,50,6,10,15)
     u8g2.DrawFilledEllipse(90,50,6,10,15)
@@ -71,7 +71,7 @@ sys.taskInit(function()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("方框测试:", 30, 24)
     u8g2.DrawBox(30,40,30,24)
     u8g2.DrawFrame(90,40,30,24)
@@ -79,7 +79,7 @@ sys.taskInit(function()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("圆角方框:", 30, 24)
     u8g2.DrawRBox(30,40,30,24,8)
     u8g2.DrawRFrame(90,40,30,24,8)
@@ -87,7 +87,7 @@ sys.taskInit(function()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("符号测试:", 30, 24)
     u8g2.DrawUTF8("显示雪人", 30, 38)
     u8g2.SetFont(u8g2.font_unifont_t_symbols)
@@ -96,7 +96,7 @@ sys.taskInit(function()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("三角测试:", 30, 24)
     u8g2.DrawTriangle(30,60, 60,30, 90,60)
     u8g2.SendBuffer()

+ 14 - 14
demo/u8g2/Air640w/main.lua

@@ -16,14 +16,14 @@ local TAG = "main"
 
 -- 初始化显示屏
 log.info(TAG, "init ssd1306")
-u8g2.begin({mode="i2c_sw", pin0=18, pin1=19})
---u8g2.begin({mode="i2c_hw",i2c_id=0,i2c_speed = i2c.FAST})
---u8g2.begin({mode="spi_hw_4pin",spi_id=1,OLED_SPI_PIN_RES=20,OLED_SPI_PIN_DC=28,OLED_SPI_PIN_CS=29})
+u8g2.begin({ic ="ssd1306",mode="i2c_sw", pin0=18, pin1=19})
+--u8g2.begin({ic ="ssd1306",mode="i2c_hw",i2c_id=0,i2c_speed = i2c.FAST})
+--u8g2.begin({ic ="ssd1306",mode="spi_hw_4pin",spi_id=1,spi_res=20,spi_dc=28,spi_cs=29})
 u8g2.SetFontMode(1)
 u8g2.ClearBuffer()
-u8g2.SetFont(u8g2.font_ncenB08_tr)
+u8g2.SetFont(u8g2.font_opposansm8)
 u8g2.DrawUTF8("U8g2+LuatOS", 32, 22)
-u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+u8g2.SetFont(u8g2.font_opposansm12_chinese)
 u8g2.DrawUTF8("中文测试", 40, 38)
 u8g2.SendBuffer()
 
@@ -31,17 +31,17 @@ u8g2.SendBuffer()
 sys.taskInit(function()
     sys.wait(2000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("屏幕宽度", 20, 24)
     u8g2.DrawUTF8("屏幕高度", 20, 42)
-    u8g2.SetFont("u8g2_font_ncenB08_tr")
+    u8g2.SetFont("u8g2_font_opposansm8")
     u8g2.DrawUTF8(":"..u8g2.GetDisplayWidth(), 72, 24)
     u8g2.DrawUTF8(":"..u8g2.GetDisplayHeight(), 72, 42)
     u8g2.SendBuffer()
 
     sys.wait(2000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("画线测试:", 30, 24)
     for i = 0, 128, 8 do
         u8g2.DrawLine(0,40,i,40)
@@ -51,7 +51,7 @@ sys.taskInit(function()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("画圆测试:", 30, 24)
     u8g2.DrawCircle(30,50,10,15)
     u8g2.DrawDisc(90,50,10,15)
@@ -59,7 +59,7 @@ sys.taskInit(function()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("椭圆测试:", 30, 24)
     u8g2.DrawEllipse(30,50,6,10,15)
     u8g2.DrawFilledEllipse(90,50,6,10,15)
@@ -67,7 +67,7 @@ sys.taskInit(function()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("方框测试:", 30, 24)
     u8g2.DrawBox(30,40,30,24)
     u8g2.DrawFrame(90,40,30,24)
@@ -75,7 +75,7 @@ sys.taskInit(function()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("圆角方框:", 30, 24)
     u8g2.DrawRBox(30,40,30,24,8)
     u8g2.DrawRFrame(90,40,30,24,8)
@@ -83,7 +83,7 @@ sys.taskInit(function()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("符号测试:", 30, 24)
     u8g2.DrawUTF8("显示雪人", 30, 38)
     u8g2.SetFont(u8g2.font_unifont_t_symbols)
@@ -92,7 +92,7 @@ sys.taskInit(function()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("三角测试:", 30, 24)
     u8g2.DrawTriangle(30,60, 60,30, 90,60)
     u8g2.SendBuffer()

+ 12 - 12
demo/u8g2/Air724/main.lua

@@ -38,7 +38,7 @@ function u8g2_init()
     log.info(TAG, "init ssd1306")
     -- 模拟I2C
     --u8g2.begin({mode="i2c_sw", pin0=18, pin1=19})
-    u8g2.begin({mode="i2c_sw", pin0=14, pin1=15})
+    u8g2.begin({ic ="ssd1306",mode="i2c_sw", pin0=14, pin1=15})
     
     -- 硬件I2C
     --i2c.setup(1, i2c.FAST)
@@ -49,9 +49,9 @@ function u8g2_init()
 
     u8g2.SetFontMode(1)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_ncenB08_tr)
+    u8g2.SetFont(u8g2.font_opposansm8)
     u8g2.DrawUTF8("U8g2+LuatOS", 32, 22)
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("中文测试", 40, 38)
     u8g2.SendBuffer()
 end
@@ -60,17 +60,17 @@ end
 function test_u8g2()
     sys.wait(2000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("屏幕宽度", 20, 24)
     u8g2.DrawUTF8("屏幕高度", 20, 42)
-    u8g2.SetFont(u8g2.font_ncenB08_tr)
+    u8g2.SetFont(u8g2.font_opposansm8)
     u8g2.DrawUTF8(":"..u8g2.GetDisplayWidth(), 72, 24)
     u8g2.DrawUTF8(":"..u8g2.GetDisplayHeight(), 72, 42)
     u8g2.SendBuffer()
 
     sys.wait(2000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("画线测试:", 30, 24)
     for i = 0, 128, 8 do
         u8g2.DrawLine(0,40,i,40)
@@ -80,7 +80,7 @@ function test_u8g2()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("画圆测试:", 30, 24)
     u8g2.DrawCircle(30,50,10,15)
     u8g2.DrawDisc(90,50,10,15)
@@ -88,7 +88,7 @@ function test_u8g2()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("椭圆测试:", 30, 24)
     u8g2.DrawEllipse(30,50,6,10,15)
     u8g2.DrawFilledEllipse(90,50,6,10,15)
@@ -96,7 +96,7 @@ function test_u8g2()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("方框测试:", 30, 24)
     u8g2.DrawBox(30,40,30,24)
     u8g2.DrawFrame(90,40,30,24)
@@ -104,7 +104,7 @@ function test_u8g2()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("圆角方框:", 30, 24)
     u8g2.DrawRBox(30,40,30,24,8)
     u8g2.DrawRFrame(90,40,30,24,8)
@@ -112,7 +112,7 @@ function test_u8g2()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("符号测试:", 30, 24)
     u8g2.DrawUTF8("显示雪人", 30, 38)
     u8g2.SetFont(u8g2.font_unifont_t_symbols)
@@ -121,7 +121,7 @@ function test_u8g2()
 
     sys.wait(1000)
     u8g2.ClearBuffer()
-    u8g2.SetFont(u8g2.font_wqy12_t_gb2312)
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
     u8g2.DrawUTF8("三角测试:", 30, 24)
     u8g2.DrawTriangle(30,60, 60,30, 90,60)
     u8g2.SendBuffer()

+ 24 - 16
luat/packages/u8g2/luat_lib_u8g2.c

@@ -34,9 +34,9 @@ static uint8_t i2c_id;
 static uint8_t i2c_speed;
 // static uint8_t i2c_addr = 0x3C;
 static uint8_t spi_id;
-static uint8_t OLED_SPI_PIN_RES;
-static uint8_t OLED_SPI_PIN_DC;
-static uint8_t OLED_SPI_PIN_CS;
+static uint8_t spi_res;
+static uint8_t spi_dc;
+static uint8_t spi_cs;
 
 /*
 u8g2显示屏初始化
@@ -59,7 +59,7 @@ static int l_u8g2_begin(lua_State *L) {
         lua_pushinteger(L, 3);
         return 1;
     }
-    // TODO: 暂时只支持SSD1306 12864, I2C接口-> i2c1soft, 软件模拟
+
     luat_u8g2_conf_t conf = {0};
     conf.pinType = 2; // I2C 硬件(或者是个假硬件)
     conf.ptr = u8g2;
@@ -159,27 +159,27 @@ static int l_u8g2_begin(lua_State *L) {
         }
         lua_pop(L, 1);
 
-        lua_pushliteral(L, "OLED_SPI_PIN_RES");
+        lua_pushliteral(L, "spi_res");
         lua_gettable(L, 1);
         if (lua_isinteger(L, -1)) {
-            OLED_SPI_PIN_RES = luaL_checkinteger(L, -1);
-            LLOGD("OLED_SPI_PIN_RES=%d", OLED_SPI_PIN_RES);
+            spi_res = luaL_checkinteger(L, -1);
+            LLOGD("spi_res=%d", spi_res);
         }
         lua_pop(L, 1);
 
-        lua_pushliteral(L, "OLED_SPI_PIN_DC");
+        lua_pushliteral(L, "spi_dc");
         lua_gettable(L, 1);
         if (lua_isinteger(L, -1)) {
-            OLED_SPI_PIN_DC = luaL_checkinteger(L, -1);
-            LLOGD("OLED_SPI_PIN_DC=%d", OLED_SPI_PIN_DC);
+            spi_dc = luaL_checkinteger(L, -1);
+            LLOGD("spi_dc=%d", spi_dc);
         }
         lua_pop(L, 1);
 
-        lua_pushliteral(L, "OLED_SPI_PIN_CS");
+        lua_pushliteral(L, "spi_cs");
         lua_gettable(L, 1);
         if (lua_isinteger(L, -1)) {
-            OLED_SPI_PIN_CS = luaL_checkinteger(L, -1);
-            LLOGD("OLED_SPI_PIN_CS=%d", OLED_SPI_PIN_CS);
+            spi_cs = luaL_checkinteger(L, -1);
+            LLOGD("spi_cs=%d", spi_cs);
         }
         lua_pop(L, 1);
 
@@ -684,8 +684,10 @@ LUAT_WEAK int luat_u8g2_setup(luat_u8g2_conf_t *conf) {
         u8g2_t* u8g2 = (u8g2_t*)conf->ptr;
         if (strncmp("ssd1306", conf->cname, 7) == 0 || strncmp("SSD1306", conf->cname, 7) == 0){
             u8g2_Setup_ssd1306_i2c_128x64_noname_f( u8g2, U8G2_R0, u8x8_luat_byte_hw_i2c, u8x8_luat_gpio_and_delay);
+#ifdef U8G2_USE_SH1106
         }else if (strncmp("sh1106", conf->cname, 6) == 0 || strncmp("SH1106", conf->cname, 6) == 0){
             u8g2_Setup_sh1106_i2c_128x64_noname_f( u8g2, U8G2_R0, u8x8_luat_byte_hw_i2c, u8x8_luat_gpio_and_delay);
+#endif
         }else{
             u8g2_Setup_ssd1306_i2c_128x64_noname_f( u8g2, U8G2_R0, u8x8_luat_byte_hw_i2c, u8x8_luat_gpio_and_delay);
         }
@@ -698,15 +700,21 @@ LUAT_WEAK int luat_u8g2_setup(luat_u8g2_conf_t *conf) {
         u8g2_t* u8g2 = (u8g2_t*)conf->ptr;
         if (strncmp("ssd1306", conf->cname, 7) == 0 || strncmp("SSD1306", conf->cname, 7) == 0){
             u8g2_Setup_ssd1306_128x64_noname_f( u8g2, U8G2_R0, u8x8_luat_byte_4wire_hw_spi, u8x8_luat_gpio_and_delay);
+#ifdef U8G2_USE_SH1106
         }else if (strncmp("sh1106", conf->cname, 6) == 0 || strncmp("SH1106", conf->cname, 6) == 0){
             u8g2_Setup_sh1106_128x64_noname_f( u8g2, U8G2_R0, u8x8_luat_byte_4wire_hw_spi, u8x8_luat_gpio_and_delay);
+#endif
+#ifdef U8G2_USE_ST7567
+        }else if (strncmp("st7567", conf->cname, 6) == 0 || strncmp("ST7567", conf->cname, 6) == 0){
+            u8g2_Setup_st7567_jlx12864_f( u8g2, U8G2_R0, u8x8_luat_byte_4wire_hw_spi, u8x8_luat_gpio_and_delay);
+#endif
         }else{
             u8g2_Setup_ssd1306_128x64_noname_f( u8g2, U8G2_R0, u8x8_luat_byte_4wire_hw_spi, u8x8_luat_gpio_and_delay);
         }
         LLOGD("setup disp spi.hw");
-        u8x8_SetPin(u8g2_GetU8x8(u8g2), U8X8_PIN_CS, OLED_SPI_PIN_CS);
-        u8x8_SetPin(u8g2_GetU8x8(u8g2), U8X8_PIN_DC, OLED_SPI_PIN_DC);
-        u8x8_SetPin(u8g2_GetU8x8(u8g2), U8X8_PIN_RESET, OLED_SPI_PIN_RES);
+        u8x8_SetPin(u8g2_GetU8x8(u8g2), U8X8_PIN_CS, spi_cs);
+        u8x8_SetPin(u8g2_GetU8x8(u8g2), U8X8_PIN_DC, spi_dc);
+        u8x8_SetPin(u8g2_GetU8x8(u8g2), U8X8_PIN_RESET, spi_res);
         u8g2_InitDisplay(u8g2);
         u8g2_SetPowerSave(u8g2, 0);
         return 0;