main.lua 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. --- 模块功能:u8g2demo
  2. -- @module u8g2
  3. -- @author Dozingfiretruck
  4. -- @release 2021.01.25
  5. -- LuaTools需要PROJECT和VERSION这两个信息
  6. PROJECT = "u8g2demo"
  7. VERSION = "1.0.1"
  8. log.info("main", PROJECT, VERSION)
  9. -- sys库是标配
  10. _G.sys = require("sys")
  11. --[[
  12. 硬件接线
  13. I2C屏幕 Air105开发板
  14. SCL (PE7)
  15. SDA (PE6)
  16. VCC 3.3V
  17. GND GND
  18. ]]
  19. --添加硬狗防止程序卡死
  20. if wdt then
  21. wdt.init(9000)--初始化watchdog设置为9s
  22. sys.timerLoopStart(wdt.feed, 3000)--3s喂一次狗
  23. end
  24. -- 日志TAG, 非必须
  25. local TAG = "main"
  26. -- 初始化显示屏
  27. log.info(TAG, "init ssd1306")
  28. -- 初始化硬件i2c的ssd1306
  29. u8g2.begin({ic = "ssd1306",direction = 0,mode="i2c_hw",i2c_id=0,i2c_speed = i2c.FAST}) -- direction 可选0 90 180 270
  30. -- 初始化软件i2c的ssd1306
  31. -- u8g2.begin({ic = "ssd1306",direction = 0,mode="i2c_sw", i2c_scl=1, i2c_sda=4}) -- 通过PA1 SCL / PA4 SDA模拟
  32. u8g2.SetFontMode(1)
  33. u8g2.ClearBuffer()
  34. u8g2.SetFont(u8g2.font_opposansm8)
  35. u8g2.DrawUTF8("U8g2+LuatOS", 32, 22)
  36. u8g2.SetFont(u8g2.font_opposansm12_chinese)
  37. u8g2.DrawUTF8("中文测试", 40, 38)
  38. u8g2.SendBuffer()
  39. -- 联网主流程
  40. sys.taskInit(function()
  41. sys.wait(2000)
  42. u8g2.ClearBuffer()
  43. u8g2.SetFont(u8g2.font_opposansm12_chinese)
  44. u8g2.DrawUTF8("屏幕宽度", 20, 24)
  45. u8g2.DrawUTF8("屏幕高度", 20, 42)
  46. u8g2.SetFont(u8g2.font_opposansm8)
  47. u8g2.DrawUTF8(":"..u8g2.GetDisplayWidth(), 72, 24)
  48. u8g2.DrawUTF8(":"..u8g2.GetDisplayHeight(), 72, 42)
  49. u8g2.SendBuffer()
  50. sys.wait(2000)
  51. u8g2.ClearBuffer()
  52. u8g2.SetFont(u8g2.font_opposansm12_chinese)
  53. u8g2.DrawUTF8("画线测试:", 30, 24)
  54. for i = 0, 128, 8 do
  55. u8g2.DrawLine(0,40,i,40)
  56. u8g2.DrawLine(0,60,i,60)
  57. u8g2.SendBuffer()
  58. end
  59. sys.wait(1000)
  60. u8g2.ClearBuffer()
  61. u8g2.SetFont(u8g2.font_opposansm12_chinese)
  62. u8g2.DrawUTF8("画圆测试:", 30, 24)
  63. u8g2.DrawCircle(30,50,10,15)
  64. u8g2.DrawDisc(90,50,10,15)
  65. u8g2.SendBuffer()
  66. sys.wait(1000)
  67. u8g2.ClearBuffer()
  68. u8g2.SetFont(u8g2.font_opposansm12_chinese)
  69. u8g2.DrawUTF8("椭圆测试:", 30, 24)
  70. u8g2.DrawEllipse(30,50,6,10,15)
  71. u8g2.DrawFilledEllipse(90,50,6,10,15)
  72. u8g2.SendBuffer()
  73. sys.wait(1000)
  74. u8g2.ClearBuffer()
  75. u8g2.SetFont(u8g2.font_opposansm12_chinese)
  76. u8g2.DrawUTF8("方框测试:", 30, 24)
  77. u8g2.DrawBox(30,40,30,24)
  78. u8g2.DrawFrame(90,40,30,24)
  79. u8g2.SendBuffer()
  80. sys.wait(1000)
  81. u8g2.ClearBuffer()
  82. u8g2.SetFont(u8g2.font_opposansm12_chinese)
  83. u8g2.DrawUTF8("圆角方框:", 30, 24)
  84. u8g2.DrawRBox(30,40,30,24,8)
  85. u8g2.DrawRFrame(90,40,30,24,8)
  86. u8g2.SendBuffer()
  87. sys.wait(1000)
  88. u8g2.ClearBuffer()
  89. u8g2.SetFont(u8g2.font_opposansm12_chinese)
  90. u8g2.DrawUTF8("符号测试:", 30, 24)
  91. u8g2.DrawUTF8("显示雪人", 30, 38)
  92. u8g2.SetFont(u8g2.font_unifont_t_symbols)
  93. u8g2.DrawGlyph( 50, 60, 0x2603 )
  94. u8g2.SendBuffer()
  95. sys.wait(1000)
  96. u8g2.ClearBuffer()
  97. u8g2.SetFont(u8g2.font_opposansm12_chinese)
  98. u8g2.DrawUTF8("三角测试:", 30, 24)
  99. u8g2.DrawTriangle(30,60, 60,30, 90,60)
  100. u8g2.SendBuffer()
  101. sys.wait(3000)
  102. u8g2.close()
  103. while true do
  104. sys.wait(1000)
  105. end
  106. end)
  107. -- 用户代码已结束---------------------------------------------
  108. -- 结尾总是这一句
  109. sys.run()
  110. -- sys.run()之后后面不要加任何语句!!!!!