开发环境搭建
合宙官方搭建的是:vscode+LuatOS-SOC推荐拓展包(vscode插件),原文链接:LuatOS开发环境搭建。安装完创建项目文件,创建main.lua文件,就可以开始编写了。
函数与使用
LuatOS-SOC接口文档^1^,该文档下面的模块函数可以直接使用
lua
XXX.函数名()
扩展库接口文档^2^,该文档下面的模块函数需要先导入,才能使用
lua
local aht10 = require "aht10"
aht10.函数名()
而且就算实在看不懂怎么用,在对应的模块的文档,都会有Demo程序,作为演示,方便快速上手的。
文件框架
程序文件的基本框架也基本分为,LuaTools需要的信息,用户任务的编写与创建,任务调度。这里在对LuatOS运行框架的任务在进行介绍一下,它这里的任务并没有任务优先级的说法,所以可以认为创建的所有任务优先级都一样,其次就只有创建任务,启动任务这些,没有临界区之类比较严谨的程序,不过在sysplus库(sys库的强力补充)中,倒是补充了些类似于队列消息类的函数。
lua
-- LuaTools需要PROJECT和VERSION这两个信息
PROJECT = "demo"
VERSION = "1.0.0"
-- 引入必要的库文件(lua编写), 内部库不需要require
sys = require("sys")
-- sys库的强力补充
require("sysplus")
-- 编写用户事件 --
function MainTask()
-- Cord
end
-- 创建任务协程 --
sys.taskinit(MainTask)
sys.run()
-- sys.run()之后后面不要加任何语句!!!!!
一些要注意的地方
- 每个任务协程创建后,不能只给死循环,哪怕只给个
sys.wait(10)
延时都行,否则烧录后会报错。
Lua速览
以下为Lua语法的基本应用介绍,当然适合有编程语言基础的人速览,大概了解Lua的基础语法结构。要是想要仔细学习的话可以去这个网站菜鸟教程Lua教程进行学习的。
_G.XXX
的定义可以认为是定义了一个全局变量。
-
变量
lua-- 全局变量 a = 5 _G.XXX = 5 -- 局部变量 local a = 5
-
循环
luawhile 条件 do -- 代码内容 end -- for i=10,1,-1 do for 变量名=初始值,最终值,步长 do -- 代码内容 end
-
判断
luaif 条件 then -- 代码内容 end
-
函数
lua-- 全局函数(默认) function name() -- 代码内容 end -- 局部函数 local function name() -- 代码内容 end
-
运算符
lua-- 算术运算符 -- +(加法) -(减法) *(乘法) /(除法) %(取余) ^(乘幂) //(整除) -- 关系运算符 -- ==(是否等于) ~=(是否不等于) >(是否大于) <(是否小于) >=(是否大于或等于) <=(是否小于或等于) -- 逻辑运算符 -- and or not -- 其他运算符 -- ..(连接两个字符串) #(返回字符串或表的长度)
-
模块于包
lua-- 以下两个语句导入包,等价效果 sys = require("sys") require("sys")