eink_drv.lua 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. --[[
  2. @module eink_drv
  3. @summary eink墨水屏显示驱动模块,基于eink核心库
  4. @version 1.0
  5. @date 2025.12.18
  6. @author 江访
  7. @usage
  8. 本模块为eink墨水屏显示驱动功能模块,主要功能包括:
  9. 1、初始化微雪1.54寸墨水屏(eink.MODEL_1in54_V2);
  10. 2、配置SPI通信参数和设备对象;
  11. 本文件无对外接口,require "eink_drv"即可加载运行
  12. ]]
  13. --[[
  14. 初始化eink显示驱动;
  15. @api eink_drv.init()
  16. @summary 配置并初始化微雪1.54寸墨水屏
  17. @return boolean 初始化成功返回true,失败返回false
  18. @usage
  19. -- 初始化eink显示
  20. local result = eink_drv.init()
  21. if result then
  22. log.info("eink初始化成功")
  23. else
  24. log.error("eink初始化失败")
  25. end
  26. ]]
  27. local function eink_drv_init()
  28. -- 按接线引脚正确配置GPIO号
  29. local spi_id = 0
  30. local pin_busy = 33
  31. local pin_reset = 26
  32. local pin_dc = 2
  33. local pin_cs = 1
  34. -- 开启异步刷新
  35. eink.async(1)
  36. -- 注意:eink初始化之前需要先初始化spi,使用spi对象方式初始化
  37. spi_eink = spi.deviceSetup(spi_id, pin_cs, 0, 0, 8, 20 * 1000 * 1000, spi.MSB, 1, 1)
  38. -- 初始化接到spi0的eink.MODEL_1in54_V2
  39. eink.init(eink.MODEL_1in54_V2,
  40. { port = "device", pin_dc = pin_dc, pin_busy = pin_busy, pin_rst = pin_reset },
  41. spi_eink)
  42. -- 设置显示窗口和方向
  43. eink.setWin(200, 200, 0)
  44. eink.clear(1, true)
  45. log.info("eink_drv.init")
  46. end
  47. eink_drv_init()