main.lua 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "einkdemo"
  3. VERSION = "1.0.0"
  4. -- sys库是标配
  5. _G.sys = require("sys")
  6. --[[
  7. 显示屏为合宙 1.54寸v2,200x200,快刷屏
  8. 硬件接线
  9. 显示屏SPI --> Air101 SPI0 Air780E SPI0
  10. Pin_RSCL (PB2) (GPIO11)
  11. Pin_RSDA (PB5) (GPIO9)
  12. Pin_RES (PB3) (GPIO1)
  13. Pin_DC (PB1) (GPIO10)
  14. Pin_CS (PB4) (GPIO8)
  15. Pin_BUSY (PB0) (GPIO22)
  16. ]]
  17. local rtos_bsp = rtos.bsp()
  18. -- spi_id,pin_reset,pin_dc,pin_cs,pin_busy,mode
  19. function eink_pin()
  20. if rtos_bsp == "AIR101" then
  21. return 0,pin.PB03,pin.PB01,pin.PB04,pin.PB00
  22. elseif rtos_bsp == "AIR103" then
  23. return 0,pin.PB03,pin.PB01,pin.PB04,pin.PB00
  24. elseif rtos_bsp == "AIR105" then
  25. return 5,pin.PC12,pin.PE08,pin.PC14,pin.PE09
  26. elseif rtos_bsp == "ESP32C3" then
  27. return 2,10,9,7,11
  28. elseif rtos_bsp == "ESP32S3" then
  29. return 2,16,15,14,13
  30. elseif rtos_bsp == "EC618" then
  31. return 0,1,10,8,22
  32. else
  33. log.info("main", "bsp not support")
  34. return
  35. end
  36. end
  37. sys.taskInit(function()
  38. local spi_id,pin_reset,pin_dc,pin_cs,pin_busy,mode = eink_pin()
  39. if spi_id then
  40. eink.model(eink.MODEL_1in54)
  41. spi.setup(spi_id,nil,0,0,8,20*1000*1000)
  42. eink.setup(mode, spi_id,pin_busy,pin_reset,pin_dc,pin_cs)
  43. eink.setWin(200, 200, 0)
  44. --稍微等一会,免得墨水屏没初始化完成
  45. sys.wait(100)
  46. log.info("e-paper 1.54", "Testing Go")
  47. eink.clear()
  48. --画几条线一个圆
  49. eink.circle(50, 100, 40)
  50. eink.line(100, 20, 105, 180)
  51. eink.line(100, 100, 180, 20)
  52. eink.line(100, 100, 180, 180)
  53. eink.show()
  54. log.info("e-paper 1.54", "Testing End")
  55. end
  56. end)
  57. -- 2022.12.02后编译的618 105固件推荐使用以下方法
  58. -- local sysplus = require("sysplus")
  59. -- sys.taskInit(function()
  60. -- local spi_id,pin_reset,pin_dc,pin_cs,pin_busy,mode = eink_pin()
  61. -- if spi_id then
  62. -- eink.async(1)
  63. -- spi_eink = spi.deviceSetup(spi_id,pin_cs,0,0,8,20*1000*1000,spi.MSB,1,0)
  64. -- eink.init(eink.MODEL_1in54,
  65. -- {port = "device",pin_dc = pin_dc, pin_busy = pin_busy,pin_rst = pin_reset},
  66. -- spi_eink)
  67. -- eink.setWin(200, 200, 0)
  68. -- sys.wait(100)
  69. -- log.info("e-paper 1.54", "Testing Go")
  70. -- eink.clear().wait()
  71. -- eink.print(30, 20, "LuatOS-AIR780E",0x00)
  72. -- eink.show().wait()
  73. -- log.info("e-paper 1.54", "Testing End")
  74. -- end
  75. -- end)
  76. sys.run()