main.lua 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. --- 模块功能:u8g2demo
  2. -- @module u8g2
  3. -- @author Dozingfiretruck
  4. -- @release 2021.01.25
  5. local sys = require("sys")
  6. --[[ 注意:如需使用u8g2的全中文字库需将 luat_base.h中#define USE_U8G2_WQY12_T_GB2312 打开]]
  7. -- 项目信息,预留
  8. PROJECT = "u8g2demo"
  9. VERSION = "1.0.1"
  10. -- 日志TAG, 非必须
  11. local TAG = "main"
  12. -- 初始化显示屏
  13. log.info(TAG, "init ssd1306")
  14. u8g2.begin({ic ="ssd1306",mode="i2c_sw", pin0=18, pin1=19})
  15. --u8g2.begin({ic ="ssd1306",mode="i2c_hw",i2c_id=0,i2c_speed = i2c.FAST})
  16. --u8g2.begin({ic ="ssd1306",mode="spi_hw_4pin",spi_id=1,spi_res=20,spi_dc=28,spi_cs=29})
  17. u8g2.SetFontMode(1)
  18. u8g2.ClearBuffer()
  19. u8g2.SetFont(u8g2.font_opposansm8)
  20. u8g2.DrawUTF8("U8g2+LuatOS", 32, 22)
  21. u8g2.SetFont(u8g2.font_opposansm12_chinese)
  22. u8g2.DrawUTF8("中文测试", 40, 38)
  23. u8g2.SendBuffer()
  24. -- 联网主流程
  25. sys.taskInit(function()
  26. sys.wait(2000)
  27. u8g2.ClearBuffer()
  28. u8g2.SetFont(u8g2.font_opposansm12_chinese)
  29. u8g2.DrawUTF8("屏幕宽度", 20, 24)
  30. u8g2.DrawUTF8("屏幕高度", 20, 42)
  31. u8g2.SetFont("u8g2_font_opposansm8")
  32. u8g2.DrawUTF8(":"..u8g2.GetDisplayWidth(), 72, 24)
  33. u8g2.DrawUTF8(":"..u8g2.GetDisplayHeight(), 72, 42)
  34. u8g2.SendBuffer()
  35. sys.wait(2000)
  36. u8g2.ClearBuffer()
  37. u8g2.SetFont(u8g2.font_opposansm12_chinese)
  38. u8g2.DrawUTF8("画线测试:", 30, 24)
  39. for i = 0, 128, 8 do
  40. u8g2.DrawLine(0,40,i,40)
  41. u8g2.DrawLine(0,60,i,60)
  42. u8g2.SendBuffer()
  43. end
  44. sys.wait(1000)
  45. u8g2.ClearBuffer()
  46. u8g2.SetFont(u8g2.font_opposansm12_chinese)
  47. u8g2.DrawUTF8("画圆测试:", 30, 24)
  48. u8g2.DrawCircle(30,50,10,15)
  49. u8g2.DrawDisc(90,50,10,15)
  50. u8g2.SendBuffer()
  51. sys.wait(1000)
  52. u8g2.ClearBuffer()
  53. u8g2.SetFont(u8g2.font_opposansm12_chinese)
  54. u8g2.DrawUTF8("椭圆测试:", 30, 24)
  55. u8g2.DrawEllipse(30,50,6,10,15)
  56. u8g2.DrawFilledEllipse(90,50,6,10,15)
  57. u8g2.SendBuffer()
  58. sys.wait(1000)
  59. u8g2.ClearBuffer()
  60. u8g2.SetFont(u8g2.font_opposansm12_chinese)
  61. u8g2.DrawUTF8("方框测试:", 30, 24)
  62. u8g2.DrawBox(30,40,30,24)
  63. u8g2.DrawFrame(90,40,30,24)
  64. u8g2.SendBuffer()
  65. sys.wait(1000)
  66. u8g2.ClearBuffer()
  67. u8g2.SetFont(u8g2.font_opposansm12_chinese)
  68. u8g2.DrawUTF8("圆角方框:", 30, 24)
  69. u8g2.DrawRBox(30,40,30,24,8)
  70. u8g2.DrawRFrame(90,40,30,24,8)
  71. u8g2.SendBuffer()
  72. sys.wait(1000)
  73. u8g2.ClearBuffer()
  74. u8g2.SetFont(u8g2.font_opposansm12_chinese)
  75. u8g2.DrawUTF8("符号测试:", 30, 24)
  76. u8g2.DrawUTF8("显示雪人", 30, 38)
  77. u8g2.SetFont(u8g2.font_unifont_t_symbols)
  78. u8g2.DrawGlyph( 50, 60, 0x2603 )
  79. u8g2.SendBuffer()
  80. sys.wait(1000)
  81. u8g2.ClearBuffer()
  82. u8g2.SetFont(u8g2.font_opposansm12_chinese)
  83. u8g2.DrawUTF8("三角测试:", 30, 24)
  84. u8g2.DrawTriangle(30,60, 60,30, 90,60)
  85. u8g2.SendBuffer()
  86. sys.wait(3000)
  87. u8g2.close()
  88. while true do
  89. sys.wait(1000)
  90. end
  91. end)
  92. -- TODO: 用户按钮(PB7), 用于清除配网信息,重新airkiss
  93. -- TODO: 联网更新脚本和底层(也许)
  94. -- 主循环, 必须加
  95. sys.run()