平头哥CDK W806-KIT单片机技术交流组
直播中

HonestQiao

9年用户 577经验值
擅长:嵌入式技术
私信 关注
[经验]

【联盛德W806-KIT开发板试用体验】欢快的跑起LuatOS并点灯

本帖最后由 HonestQiao 于 2021-11-20 18:26 编辑

LuatOS-SoC是一款实时操作系统,用户编写Lua代码就可完成各种功能,仅需极少的内存和Flash空间。

LuatOS的Air103固件,正好能够支持W806,今天我们就在W806-Kit上跑起LuatOS并点灯。

进行W806上的LuatOS开发,官方提供的工具包括luatools和luatide。
  • luatools:多功能下载调试工具
  • VSCode LuatIDE插件,为luatOS开发者提供强大的集成式开发环境

但LuatIDE对W806的支持还在完善中,所以我们目前使用luatools。

一、下载luatools并更新
luatools下载地址:https://www.openluat.com/Product/software/luatools.html
应下载其中的 [LuaTools尝鲜版] 点此下载,下载后,请新建LuatOS目录,并将下载的Luatools_v2.exe放置其中。
首次启动Luatools,会自动创建相关的目录,并提示下载更新对应的数据文件。
iShot2021-11-20 17.06.54.png

更新成功后,提示如下:
iShot2021-11-20 17.07.38.png

二、连接设备:
用标准u***线,将开发板接到电脑上:
WechatIMG2956.jpg

这个板子,做工还是不错的,就是连个针都没有焊,得自己动手了。

然后,查看设备管理器,如果驱动自动安装正确,会显示如下的CH340串口设备。
iShot2021-11-20 17.11.44.png


如果没有自动安装驱动,可以下载CH340驱动安装,重启后再次连接开发板。
下载地址:http://www.wch.cn/downloads/CH341SER_EXE.html


三、检查串口通讯:
参考如下界面,按照数字顺序,进行设置:
iShot2021-11-20 17.29.29.png

要点:
1. 选项及工具->工具设置->Uart,设置串口通讯速率为921600,然后点关闭设置窗口几个
2. 串口列表部分,选择正确的串口
3. 打印方式勾选通用串口打印
4. 点(7)的打开串口
5. 再按一下开发板上的[RST_N]按键,此时应可从调试窗口,看到串口输出。如果显示为乱码可不用紧张,这一步只要成功通讯即可。

四、下载LuatOS固件:
iShot2021-11-20 17.36.29.png
参考上图,点击下载固件,然后选择103对应的NOUI固件,再点击下载,界面会自动显示提示:
iShot2021-11-20 17.37.14.png
根据提示,需要及时按开发板上的[RST_N]按键。如果没有按,则会提示超时:
iShot2021-11-20 17.37.25.png

如果一切正常,下载正常进项中:
iShot2021-11-20 17.37.49.png
直至完成:
iShot2021-11-20 17.38.01.png

然后关闭下载串口,打开串口(通常会自动打开),会显示如下信息:
iShot2021-11-20 17.59.31.png
这表示LuatOS固件写入成功,但是还没有执行脚本。
下一步,我们就可以开始写入脚本了。

五、开发lua脚本:
在W806-Kit开发板上,有3个LED可以控制,对应GPIO端口为18、19、20
参考LuatOS官方的演示代码,我们写了一个简单的LED程序:
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "gpiodemo"
  3. VERSION = "1.0.0"

  4. -- sys库是标配
  5. _G.sys = require("sys")

  6. --添加硬狗防止程序卡死
  7. wdt.init(15000)--初始化watchdog设置为15s
  8. sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗

  9. local LEDA = gpio.setup(16, 0, gpio.PULLUP) -- PB0输出模式
  10. local LEDB = gpio.setup(17, 0, gpio.PULLUP) -- PB1输出模式
  11. local LEDC = gpio.setup(18, 0, gpio.PULLUP) -- PB2输出模式

  12. sys.taskInit(function()
  13.     wdt.init(15000)
  14.     sys.timerLoopStart(wdt.feed, 10000)
  15.     local count = 0
  16.     local uid = mcu.unique_id() or ""
  17.     while 1 do
  18.     -- 一闪一闪亮晶晶
  19.     LEDA(count & 0x01 == 0x01 and 1 or 0)
  20.     LEDB(count & 0x02 == 0x02 and 1 or 0)
  21.     LEDC(count & 0x03 == 0x03 and 1 or 0)
  22.     log.info("gpio", "Go Go Go", uid:toHex(), count)
  23.     sys.wait(1000)
  24.     count = count + 1
  25.     end
  26. end)

  27. -- 用户代码已结束---------------------------------------------
  28. -- 结尾总是这一句
  29. sys.run()
  30. -- sys.run()之后后面不要加任何语句!!!!!
将其保存在LuatOS/projects/LED/main.lua中。对应的目录,请自己建立。
iShot2021-11-20 18.12.49.png

LuatOS相关的资料,可以反问LuatOS官网对应页面查看了解和学习:
https://doc.openluat.com/article/3674

六、写入程序:
iShot2021-11-20 18.03.13.png
参考上述界面,使用luatools的项目管理功能,新建test项目,并选择正确的底层core和上一步保存的脚本,然后点击下载底层和脚本,即可写入。
在下载过程中,会提是等待设备重启,此时同样需要按开发板上的[RST_N]按键,才能成功写入,写入完成,进度条会变成绿色,并提示下载成功。
iShot2021-11-20 18.08.06.png

提醒:
1. 首次下载的时候,最好是选择下载底层和脚本;
2. 后续开发再次下载的时候,使用下载脚本即可。

七、实际运行结果:
关闭项目管理窗口,重启设备,将会看到如下的信息:
iShot2021-11-20 18.09.00.png
"Go Go Go"部分,就表示我们的脚本执行成功了,对应之前代码中的【log.info("gpio", "Go Go Go", uid:toHex(), count)】,你也可以修改了,重新写入,然后观察执行效果。

八、开发板实际表现:

1637403610709386

  • iShot2021-11-20 18.04.42.png

更多回帖

发帖
×
20
完善资料,
赚取积分