فهرست منبع

add:添加一些C3 demo

Dozingfiretruck 3 سال پیش
والد
کامیت
53b43f2740
3فایلهای تغییر یافته به همراه246 افزوده شده و 0 حذف شده
  1. 47 0
      demo/adc/ESP32C3/main.lua
  2. 82 0
      demo/lvgl/ESP32C3/main.lua
  3. 117 0
      demo/u8g2/ESP32C3/main.lua

+ 47 - 0
demo/adc/ESP32C3/main.lua

@@ -0,0 +1,47 @@
+
+-- LuaTools需要PROJECT和VERSION这两个信息
+PROJECT = "adcdemo"
+VERSION = "1.0.0"
+
+log.info("main", PROJECT, VERSION)
+
+-- 一定要添加sys.lua !!!!
+sys = require("sys")
+
+--添加硬狗防止程序卡死
+if wdt then
+    wdt.init(9000)--初始化watchdog设置为9s
+    sys.timerLoopStart(wdt.feed, 3000)--3s喂一次狗
+end
+
+sys.taskInit(function()
+    while 1 do
+        adc.open(0) -- 模块上的ADC0脚
+        adc.open(1) -- 模块上的ADC1脚
+        adc.open(2) -- 模块上的ADC2脚
+        adc.open(3) -- 模块上的ADC3脚
+        adc.open(4) -- 模块上的ADC4脚
+        adc.open(10) -- CPU温度
+        sys.wait(500)
+        log.debug("adc", "adc0", adc.read(0))
+        log.debug("adc", "adc1", adc.read(1))
+        log.debug("adc", "adc2", adc.read(2))
+        log.debug("adc", "adc3", adc.read(3))
+        log.debug("adc", "adc4", adc.read(4))
+        log.debug("adc", "adc_temp", adc.read(10))
+        adc.close(0)
+        adc.close(1)
+        adc.close(2)
+        adc.close(3)
+        adc.close(4)
+        adc.close(10)
+        sys.wait(500)
+    end
+
+end)
+
+
+-- 用户代码已结束---------------------------------------------
+-- 结尾总是这一句
+sys.run()
+-- sys.run()之后后面不要加任何语句!!!!!

+ 82 - 0
demo/lvgl/ESP32C3/main.lua

@@ -0,0 +1,82 @@
+--- 模块功能:lvgldemo
+-- @module lvgl
+-- @author Dozingfiretruck
+-- @release 2021.01.25
+
+-- LuaTools需要PROJECT和VERSION这两个信息
+PROJECT = "lvgldemo"
+VERSION = "1.0.0"
+
+log.info("main", PROJECT, VERSION)
+
+-- sys库是标配
+_G.sys = require("sys")
+
+--[[
+-- LCD接法示例, 以Air105开发板的HSPI为例
+LCD管脚       Air105管脚
+GND          GND
+VCC          3.3V
+SCL          (PC15/SPI0_SCK)
+SDA          (PC13/SPI0_MOSI)
+RES          (PC12)
+DC           (PE8)
+CS           (PC14)
+BL           (PE9)
+
+
+提示:
+1. 只使用SPI的时钟线(SCK)和数据输出线(MOSI), 其他均为GPIO脚
+2. 数据输入(MISO)和片选(CS), 虽然是SPI, 但已复用为GPIO, 并非固定,是可以自由修改成其他脚
+]]
+
+--添加硬狗防止程序卡死
+wdt.init(9000)--初始化watchdog设置为9s
+sys.timerLoopStart(wdt.feed, 3000)--3s喂一次狗
+
+log.info("hello luatos")
+spi_lcd = spi.deviceSetup(2, 7, 0, 0, 8, 40*1000*1000, spi.MSB, 1, 0)
+
+--[[ 此为合宙售卖的2.4寸TFT LCD 分辨率:240X320 屏幕ic:GC9306 购买地址:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-24045920841.39.6c2275a1Pa8F9o&id=655959696358]]
+-- lcd.init("gc9a01",{port = "device",pin_dc = 6, pin_pwr = 11,pin_rst = 10,direction = 0,w = 240,h = 320,xoffset = 0,yoffset = 0},spi_lcd)
+
+--[[ 此为合宙售卖的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 = 6, pin_pwr = 11,pin_rst = 10,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 = 6, pin_pwr = 11,pin_rst = 10,direction = 0,w = 240,h = 240,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 = 6, pin_pwr = 11,pin_rst = 10,direction = 1,w = 160,h = 80,xoffset = 0,yoffset = 24},spi_lcd)
+--如果显示颜色相反,请解开下面一行的注释,关闭反色
+--lcd.invoff()
+--如果显示依旧不正常,可以尝试老版本的板子的驱动
+--lcd.init("st7735s",{port = "device",pin_dc = 6, pin_pwr = 11,pin_rst = 10,direction = 2,w = 160,h = 80,xoffset = 0,yoffset = 0},spi_lcd)
+
+--[[ 此为合宙售卖的2.4寸TFT LCD 分辨率:240X320 屏幕ic:GC9306 购买地址:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-24045920841.39.6c2275a1Pa8F9o&id=655959696358]]
+-- lcd.init("gc9306",{port = "device",pin_dc = 6, pin_pwr = 11,pin_rst = 10,direction = 0,w = 240,h = 320,xoffset = 0,yoffset = 0},spi_lcd)
+
+-- 不在上述内置驱动的, 看demo/lcd_custom
+
+log.info("lvgl", lvgl.init())
+
+local scr = lvgl.obj_create(nil, nil)
+local btn = lvgl.btn_create(scr)
+local btn2 = lvgl.btn_create(scr)
+lvgl.obj_align(btn, lvgl.scr_act(), lvgl.ALIGN_CENTER, 0, 0)
+lvgl.obj_align(btn2, lvgl.scr_act(), lvgl.ALIGN_CENTER, 0, 50)
+local label = lvgl.label_create(btn)
+local label2 = lvgl.label_create(btn2)
+lvgl.label_set_text(label, "LuatOS!")
+lvgl.label_set_text(label2, "Hi")
+
+lvgl.scr_load(scr)
+
+
+
+-- 用户代码已结束---------------------------------------------
+-- 结尾总是这一句
+sys.run()
+-- sys.run()之后后面不要加任何语句!!!!!
+
+

+ 117 - 0
demo/u8g2/ESP32C3/main.lua

@@ -0,0 +1,117 @@
+--- 模块功能:u8g2demo
+-- @module u8g2
+-- @author Dozingfiretruck
+-- @release 2021.01.25
+
+-- LuaTools需要PROJECT和VERSION这两个信息
+PROJECT = "u8g2demo"
+VERSION = "1.0.1"
+
+log.info("main", PROJECT, VERSION)
+
+-- sys库是标配
+_G.sys = require("sys")
+
+--[[
+I2C0
+I2C0_SCL               (5)
+I2C0_SDA               (4)
+]]
+
+--添加硬狗防止程序卡死
+wdt.init(9000)--初始化watchdog设置为9s
+sys.timerLoopStart(wdt.feed, 3000)--3s喂一次狗
+
+-- 日志TAG, 非必须
+local TAG = "main"
+
+-- 初始化显示屏
+log.info(TAG, "init ssd1306")
+
+-- 初始化硬件i2c的ssd1306
+u8g2.begin({ic = "ssd1306",direction = 0,mode="i2c_hw",i2c_id=0,i2c_speed = i2c.FAST}) -- direction 可选0 90 180 270
+-- 初始化软件i2c的ssd1306
+-- u8g2.begin({ic = "ssd1306",direction = 0,mode="i2c_sw", i2c_scl=5, i2c_sda=4}) -- 通过GPIO5 SCL / GPIPO4 SDA模拟
+
+u8g2.SetFontMode(1)
+u8g2.ClearBuffer()
+u8g2.SetFont(u8g2.font_opposansm8)
+u8g2.DrawUTF8("U8g2+LuatOS", 32, 22)
+
+if u8g2.font_opposansm12_chinese then
+    u8g2.SetFont(u8g2.font_opposansm12_chinese)
+else
+    u8g2.SetFont(u8g2.font_opposansm10_chinese)
+end
+u8g2.SetFont(u8g2.font_opposansm12_chinese)
+u8g2.DrawUTF8("中文测试", 40, 38) -- 若中文不显示或乱码,代表所刷固件不带这个字号的字体数据, 可自行云编译一份. wiki.luatos.com 有文档.
+u8g2.SendBuffer()
+
+--主流程
+sys.taskInit(function()
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.DrawUTF8("屏幕宽度", 0, 24)
+    u8g2.DrawUTF8("屏幕高度", 0, 42)
+    u8g2.DrawUTF8(":"..u8g2.GetDisplayWidth(), 80, 24)
+    u8g2.DrawUTF8(":"..u8g2.GetDisplayHeight(), 80, 42)
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.DrawUTF8("画线测试:", 30, 24)
+    for i = 0, 128, 8 do
+        u8g2.DrawLine(0,40,i,40)
+        u8g2.DrawLine(0,60,i,60)
+        u8g2.SendBuffer()
+        sys.wait(100)
+    end
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.DrawUTF8("画圆测试:", 30, 24)
+    u8g2.DrawCircle(30,50,10,15)
+    u8g2.DrawDisc(90,50,10,15)
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.DrawUTF8("椭圆测试:", 30, 24)
+    u8g2.DrawEllipse(30,50,6,10,15)
+    u8g2.DrawFilledEllipse(90,50,6,10,15)
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.DrawUTF8("方框测试:", 30, 24)
+    u8g2.DrawBox(30,40,30,24)
+    u8g2.DrawFrame(90,40,30,24)
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.DrawUTF8("圆角方框:", 30, 24)
+    u8g2.DrawRBox(30,40,30,24,8)
+    u8g2.DrawRFrame(90,40,30,24,8)
+    u8g2.SendBuffer()
+
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.DrawUTF8("三角测试:", 30, 24)
+    u8g2.DrawTriangle(30,60, 60,30, 90,60)
+    u8g2.SendBuffer()
+
+
+    -- qrcode测试
+    sys.wait(1000)
+    u8g2.ClearBuffer()
+    u8g2.DrawDrcode(4, 4, "https://wiki.luatos.com/chips/air101/mcu.html", 10);
+
+    u8g2.SendBuffer()
+
+    --sys.wait(1000)
+    log.info("main", "u8g2 demo done")
+end)
+
+-- 主循环, 必须加
+sys.run()