lcd.lua 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. --- 模块功能:LCD适配
  2. -- @author openLuat
  3. -- @module ui.lcd
  4. -- @license MIT
  5. -- @copyright openLuat
  6. -- @release 2018.03.27
  7. -- 根据自己的lcd类型以及使用的spi引脚,打开下面的其中一个文件进行测试
  8. -- mono表示黑白屏,color表示彩屏
  9. -- std_spi表示使用标准的SPI引脚,lcd_spi表示使用LCD专用的SPI引脚
  10. -- i2c表示使用i2c引脚
  11. -- require "mono_std_spi_sh1106"
  12. -- require "mono_lcd_spi_ssd1306"
  13. -- require "mono_std_spi_st7567"
  14. -- require "color_std_spi_st7735"
  15. -- require "color_std_spi_st7735l"
  16. -- require "color_std_spi_ILI9341"
  17. -- require "color_lcd_spi_ILI9341"
  18. -- require "mono_lcd_spi_sh1106"
  19. -- require "mono_lcd_spi_ssd1306"
  20. -- require "mono_lcd_spi_st7567"
  21. require "color_lcd_spi_st7735"
  22. -- require "color_lcd_spi_st7735S"
  23. -- require "color_lcd_spi_gc9106l"
  24. -- require "color_lcd_spi_gc9a01"
  25. -- require "mono_i2c_ssd1306"
  26. -- require "mipi_lcd_ILI9806E"
  27. -- require "mipi_lcd_GC9503"
  28. -- require "mono_lcd_spi_st75256"
  29. -- require "mono_lcd_spi_SH1108"
  30. module(..., package.seeall)
  31. -- LCD分辨率的宽度和高度(单位是像素)
  32. WIDTH, HEIGHT, BPP = disp.getlcdinfo()
  33. -- 1个ASCII字符宽度为8像素,高度为16像素;汉字宽度和高度都为16像素
  34. CHAR_WIDTH = 8
  35. --[[
  36. 函数名:getxpos
  37. 功能 :计算字符串居中显示的X坐标
  38. 参数 :
  39. str:string类型,要显示的字符串
  40. 返回值:X坐标
  41. ]]
  42. function getxpos(str)
  43. return (WIDTH - string.len(str) * CHAR_WIDTH) / 2
  44. end
  45. function setcolor(color)
  46. if BPP ~= 1 then
  47. return disp.setcolor(color)
  48. end
  49. end