Переглянути джерело

update:lcd custom demo支持718

Dozingfiretruck 2 роки тому
батько
коміт
d51f1e8e89
2 змінених файлів з 21 додано та 17 видалено
  1. 8 10
      demo/lcd/main.lua
  2. 13 7
      demo/lcd_custom/main.lua

+ 8 - 10
demo/lcd/main.lua

@@ -70,27 +70,25 @@ end
 
 local spi_id,pin_reset,pin_dc,pin_cs,bl = lcd_pin() 
 
--- v0006及以后版本可用pin方式, 请升级到最新固件 https://gitee.com/openLuat/LuatOS/releases
 if spi_id ~= lcd.HWID_0 then
     spi_lcd = spi.deviceSetup(spi_id,pin_cs,0,0,8,20*1000*1000,spi.MSB,1,0)
+    port = "device"
+else
+    port = spi_id
+end
 
     --[[ 此为合宙售卖的1.8寸TFT LCD LCD 分辨率:128X160 屏幕ic:st7735 购买地址:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-24045920841.19.6c2275a1Pa8F9o&id=560176729178]]
-    -- lcd.init("st7735",{port = "device",pin_dc = pin_dc, pin_pwr = bl, pin_rst = pin_reset,direction = 0,w = 128,h = 160,xoffset = 0,yoffset = 0},spi_lcd)
+    -- lcd.init("st7735",{port = port,pin_dc = pin_dc, pin_pwr = bl, pin_rst = pin_reset,direction = 0,w = 128,h = 160,xoffset = 0,yoffset = 0},spi_lcd)
 
     --[[ 此为合宙售卖的1.54寸TFT LCD LCD 分辨率:240X240 屏幕ic:st7789 购买地址:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-24045920841.20.391445d5Ql4uJl&id=659456700222]]
-    lcd.init("st7789",{port = "device",pin_dc = pin_dc, pin_pwr = bl, pin_rst = pin_reset,direction = 0,w = 240,h = 320,xoffset = 0,yoffset = 0},spi_lcd)
+    lcd.init("st7789",{port = port,pin_dc = pin_dc, pin_pwr = bl, pin_rst = pin_reset,direction = 0,w = 240,h = 320,xoffset = 0,yoffset = 0},spi_lcd)
 
     --[[ 此为合宙售卖的0.96寸TFT LCD LCD 分辨率:160X80 屏幕ic:st7735s 购买地址:https://item.taobao.com/item.htm?id=661054472686]]
-    --lcd.init("st7735v",{port = "device",pin_dc = pin_dc, pin_pwr = bl, pin_rst = pin_reset,direction = 1,w = 160,h = 80,xoffset = 0,yoffset = 24},spi_lcd)
+    --lcd.init("st7735v",{port = port,pin_dc = pin_dc, pin_pwr = bl, pin_rst = pin_reset,direction = 1,w = 160,h = 80,xoffset = 0,yoffset = 24},spi_lcd)
     --如果显示颜色相反,请解开下面一行的注释,关闭反色
     --lcd.invoff()
     --如果显示依旧不正常,可以尝试老版本的板子的驱动
-    -- lcd.init("st7735s",{port = "device",pin_dc = pin_dc, pin_pwr = bl, pin_rst = pin_reset,direction = 2,w = 160,h = 80,xoffset = 0,yoffset = 0},spi_lcd)
-
-else
-    lcd.init("st7789",{port = spi_id, pin_dc = pin_dc, pin_pwr = bl, pin_rst = pin_reset,direction = 0,w = 240,h = 320})
-end
-
+    -- lcd.init("st7735s",{port = port,pin_dc = pin_dc, pin_pwr = bl, pin_rst = pin_reset,direction = 2,w = 160,h = 80,xoffset = 0,yoffset = 0},spi_lcd)
 
 -- 不在内置驱动的, 看demo/lcd_custom
 

+ 13 - 7
demo/lcd_custom/main.lua

@@ -45,6 +45,8 @@ local function lcd_pin()
         return 2,16,15,14,13
     elseif rtos_bsp == "EC618" then
         return 0,1,10,8,22
+    elseif rtos_bsp == "EC718P" then
+        return lcd.HWID_0,36,0xff,0xff,0xff -- 注意:EC718P有硬件lcd驱动接口, 无需使用spi,当然spi驱动也支持
     else
         log.info("main", "bsp not support")
         return
@@ -53,8 +55,12 @@ end
 
 local spi_id,pin_reset,pin_dc,pin_cs,bl = lcd_pin() 
 
--- v0006及以后版本可用pin方式, 请升级到最新固件 https://gitee.com/openLuat/LuatOS/releases
-spi_lcd = spi.deviceSetup(spi_id,pin_cs,0,0,8,20*1000*1000,spi.MSB,1,0)
+if spi_id ~= lcd.HWID_0 then
+    spi_lcd = spi.deviceSetup(spi_id,pin_cs,0,0,8,20*1000*1000,spi.MSB,1,0)
+    port = "device"
+else
+    port = spi_id
+end
 
 --[[ 下面为custom方式示例,自己传入lcd指令来实现驱动,示例以st7735s做展示 ]]
 --[[ 注意修改下面的pin_xx对应的gpio信息, 数值与pin.XXX 均可]]
@@ -66,7 +72,7 @@ spi_lcd = spi.deviceSetup(spi_id,pin_cs,0,0,8,20*1000*1000,spi.MSB,1,0)
 ]]
 
 -- lcd.init("custom",{
---     port = "device",
+--     port = port,
 --     pin_dc = pin_dc, 
 --     pin_pwr = bl,
 --     pin_rst = pin_reset,
@@ -111,10 +117,10 @@ spi_lcd = spi.deviceSetup(spi_id,pin_cs,0,0,8,20*1000*1000,spi.MSB,1,0)
 
 --[[ 下面为custom方式示例,自己传入lcd指令来实现驱动,示例以st7789做展示 ]]
 -- lcd.init("custom",{
---     port = "device",
---     pin_dc = pin.PB01, 
---     pin_pwr = pin.PB00,
---     pin_rst = pin.PB03,
+--     port = port,
+--     pin_dc = pin_dc, 
+--     pin_pwr = bl,
+--     pin_rst = pin_reset,
 --     direction = 0,
 --     direction0 = 0x00,
 --     w = 240,