main.lua 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. --- 字体demo
  2. -- LuaTools需要PROJECT和VERSION这两个信息
  3. PROJECT = "fontdemo"
  4. VERSION = "1.0.0"
  5. log.info("main", PROJECT, VERSION)
  6. -- sys库是标配
  7. _G.sys = require("sys")
  8. --[[
  9. SPI0
  10. SPI0_SCK (PB2)
  11. SPI0_MISO (PB3)
  12. SPI0_MOSI (PB5)
  13. ]]
  14. --添加硬狗防止程序卡死
  15. if wdt then
  16. wdt.init(9000)--初始化watchdog设置为9s
  17. sys.timerLoopStart(wdt.feed, 3000)--3s喂一次狗
  18. end
  19. -- 使用全局变量, 避免spi_lcd被回收
  20. spi_lcd = spi.deviceSetup(0,20,0,0,8,2000000,spi.MSB,1,1)
  21. -- log.info("lcd.init",
  22. -- lcd.init("gc9a01",{port = "device",pin_dc = 17, pin_pwr = 16,pin_rst = 19,direction = 0,w = 240,h = 320,xoffset = 0,yoffset = 0},spi_lcd))
  23. -- log.info("lcd.init",
  24. -- lcd.init("st7789",{port = "device",pin_dc = 17, pin_pwr = 16,pin_rst = 19,direction = 0,w = 240,h = 240,xoffset = 0,yoffset = 0},spi_lcd))
  25. -- log.info("lcd.init",
  26. -- lcd.init("st7789",{port = "device",pin_dc = 17, pin_pwr = 16,pin_rst = 19,direction = 3,w = 240,h = 240,xoffset = 80,yoffset = 0},spi_lcd))
  27. -- log.info("lcd.init",
  28. -- lcd.init("st7789",{port = "device",pin_dc = 17, pin_pwr = 16,pin_rst = 19,direction = 3,w = 320,h = 240,xoffset = 0,yoffset = 0},spi_lcd))
  29. log.info("lcd.init",
  30. lcd.init("st7735",{port = "device",pin_dc = 17, pin_pwr = 7,pin_rst = 19,direction = 0,w = 128,h = 160,xoffset = 2,yoffset = 1},spi_lcd))
  31. -- log.info("lcd.init",
  32. -- lcd.init("st7735v",{port = "device",pin_dc = 17, pin_pwr = 16,pin_rst = 19,direction = 1,w = 160,h = 80,xoffset = 0,yoffset = 24},spi_lcd))
  33. -- log.info("lcd.init",
  34. -- lcd.init("st7735s",{port = "device",pin_dc = 17, pin_pwr = 7,pin_rst = 19,direction = 2,w = 160,h = 80,xoffset = 1,yoffset = 26},spi_lcd))
  35. --[[-- v0006及以后版本可用pin方式
  36. spi_lcd = spi.deviceSetup(0,pin.PB04,0,0,8,2000000,spi.MSB,1,1)
  37. -- log.info("lcd.init",
  38. -- lcd.init("gc9a01",{port = "device",pin_dc = pin.PB01, pin_pwr = pin.PB00,pin_rst = pin.PB03,direction = 0,w = 240,h = 320,xoffset = 0,yoffset = 0},spi_lcd))
  39. -- log.info("lcd.init",
  40. -- lcd.init("st7789",{port = "device",pin_dc = pin.PB01, pin_pwr = pin.PB00,pin_rst = pin.PB03,direction = 0,w = 240,h = 240,xoffset = 0,yoffset = 0},spi_lcd))
  41. -- log.info("lcd.init",
  42. -- lcd.init("st7789",{port = "device",pin_dc = pin.PB01, pin_pwr = pin.PB00,pin_rst = pin.PB03,direction = 3,w = 240,h = 240,xoffset = 80,yoffset = 0},spi_lcd))
  43. -- log.info("lcd.init",
  44. -- lcd.init("st7789",{port = "device",pin_dc = pin.PB01, pin_pwr = pin.PB00,pin_rst = pin.PB03,direction = 3,w = 320,h = 240,xoffset = 0,yoffset = 0},spi_lcd))
  45. -- log.info("lcd.init",
  46. -- lcd.init("st7735",{port = "device",pin_dc = pin.PB01, pin_pwr = pin.PB00,pin_rst = pin.PB03,direction = 0,w = 128,h = 160,xoffset = 2,yoffset = 1},spi_lcd))
  47. -- log.info("lcd.init",
  48. -- 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))
  49. log.info("lcd.init",
  50. 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))
  51. ]]
  52. log.info("lcd.drawLine", lcd.drawLine(20,20,150,20,0x001F))
  53. log.info("lcd.drawRectangle", lcd.drawRectangle(20,40,120,70,0xF800))
  54. log.info("lcd.drawCircle", lcd.drawCircle(50,50,20,0x0CE0))
  55. sys.taskInit(function()
  56. sys.wait(2000)
  57. local i = 0
  58. while 1 do
  59. lcd.clear(0)
  60. local start = mcu.ticks()
  61. local data = fonts.get_data(0, 0xB0A1 + i)
  62. local gtime = mcu.ticks() - start
  63. log.info("fonts", data:toHex())
  64. lcd.drawXbm(32, 32, 16, 16, data)
  65. local ltime = mcu.ticks() - start - gtime
  66. log.info("ticks", start, gtime, ltime)
  67. sys.wait(1000)
  68. i = i + 1
  69. break
  70. end
  71. end)
  72. -- 用户代码已结束---------------------------------------------
  73. -- 结尾总是这一句
  74. sys.run()
  75. -- sys.run()之后后面不要加任何语句!!!!!