main.lua 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "touch"
  3. VERSION = "1.0.0"
  4. log.info("main", PROJECT, VERSION)
  5. -- 引入必要的库文件(lua编写), 内部库不需要require
  6. sys = require("sys")
  7. if wdt then
  8. --添加硬狗防止程序卡死,在支持的设备上启用这个功能
  9. wdt.init(15000)--初始化watchdog设置为15s
  10. sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
  11. end
  12. -- v0006及以后版本可用pin方式, 请升级到最新固件 https://gitee.com/openLuat/LuatOS/releases
  13. spi_lcd = spi.deviceSetup(0,pin.PB04,0,0,8,20*1000*1000,spi.MSB,1,1)
  14. --[[ 此为合宙售卖的0.96寸TFT LCD LCD 分辨率:160X80 屏幕ic:st7735s 购买地址:https://item.taobao.com/item.htm?id=661054472686]]
  15. lcd.init("st7735v",{port = "device",pin_dc = pin.PB01, pin_pwr = pin.PB00,pin_rst = pin.PB03,direction = 1,w = 160,h = 80,xoffset = 0,yoffset = 24},spi_lcd)
  16. --如果显示颜色相反,请解开下面一行的注释,关闭反色
  17. --lcd.invoff()
  18. --如果显示依旧不正常,可以尝试老版本的板子的驱动
  19. --lcd.init("st7735s",{port = "device",pin_dc = pin.PB01, pin_pwr = pin.PB00,pin_rst = pin.PB03,direction = 2,w = 160,h = 80,xoffset = 1,yoffset = 26},spi_lcd)
  20. local function event_handler(obj, event)
  21. if(event == lvgl.EVENT_CLICKED) then
  22. print("Clicked")
  23. elseif(event == lvgl.EVENT_VALUE_CHANGED) then
  24. print("Toggled")
  25. end
  26. end
  27. local function demo1()
  28. local label
  29. local btn2 = lvgl.btn_create(lvgl.scr_act(), nil)
  30. lvgl.obj_set_event_cb(btn2, event_handler)
  31. lvgl.obj_align(btn2, nil, lvgl.ALIGN_CENTER, 0, 0)
  32. lvgl.btn_set_checkable(btn2, true)
  33. lvgl.btn_toggle(btn2)
  34. lvgl.btn_set_fit2(btn2, lvgl.FIT_NONE, lvgl.FIT_TIGHT)
  35. label = lvgl.label_create(btn2, nil)
  36. lvgl.label_set_text(label, "Toggled")
  37. end
  38. gpio.setup(pin.PA04,
  39. function(val)
  40. if val==0 then
  41. lvgl.indev_point_emulator_update(80,40,1)
  42. else
  43. lvgl.indev_point_emulator_update(80,40,0)
  44. end
  45. end, gpio.PULLUP)
  46. sys.taskInit(function()
  47. log.info("lvgl", lvgl.init())
  48. demo1()
  49. lvgl.indev_drv_register("pointer", "emulator")
  50. while 1 do
  51. sys.wait(1000)
  52. end
  53. end)
  54. -- 用户代码已结束---------------------------------------------
  55. -- 结尾总是这一句
  56. sys.run()
  57. -- sys.run()之后后面不要加任何语句!!!!!