Toggle navigation
首页
(current)
问答
文章
话题
商城
登录
注册
2、合宙Air模块Luat开发:第一个Luat的Hello World
LUAT
4G模块
Air720SL
教程
目录点击这里查看所有博文一、前言学习过C语言的朋友应该很清楚(没有学过可以直接跳过前言,以下纯属闲聊),C语言入门第一课就是HelloWorld,下面的这段代码大家都不陌生#include <stdio.h...
# 目录 [点击这里查看所有博文](https://blog.csdn.net/weixin_44570083/article/details/104285283) > 本系列博客,理论上适用于合宙的Air202、Air268、Air720x、Air720S以及最近发布的Air720U(我还没拿到样机,应该也能支持)。 > 先不管支不支持,如果你用的是合宙的模块,那都不妨一试,也许会有意外收获 我使用的是Air720SL模块,如果在其他模块上不能用,那就是底层core固件暂时还没有支持,这里的代码是没有问题的。例程仅供参考! # 一、前言 > 学习过C语言的朋友应该很清楚(没有学过可以直接跳过前言,以下纯属闲聊),C语言入门第一课就是HelloWorld,下面的这段代码大家都不陌生 ```c #include
int main() { printf("hello world!\n"); system("pause"); return 0; } ``` > 在c语言里,想要使用printf函数就需要包含`#include
`, > 想要程序能够运行,那需要有main函数,程序以main函数作为程序入口,开始执行 > 而Lua是一个脚本语言,相比C语言要少了很多限制,它可以不需要main函数,甚至参数可以不用定义,直接使用,系统会根据里面的值,自动创建一个对应的变量存储它,用起来十分方便。 > 直接写一个`str=“abc”`系统会自动给这个数据创建一个String类型的变量存储 > 直接写一个`str=123`系统会自动给这个数据创建一个Number类型的变量存储 > 开始运行时直接从上到下顺序执行(下面这段程序,是我随便打出来的,没有什么实际意义) ```c tab1={} print(tab2.key1) print(tab2["key1"]) print(tab2.key2) print(tab3[1]) print(tab3[2]) print(tab3[3]) print(tab3[4]) tab1.key1="www.baidu.com" print(tab1["key1"]) print(tab1.key1) tab1["key2"]="haha" print(tab1["key2"]) print(tab1.key2) ``` > 我们这里也不例外,我选择将HelloWorld作为本系列教程的第一个程序, > 闲话扯了这么多,下面开始正式我们的Helloworld例程 # 二、新建一个工程 ## 1、创建文件 > 在一个自己能找到的地方,比如桌面,实际随便哪里都行,新建一个文件夹,命名为0_HelloWorld > ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200212222315435.png) > 进去新建一个文本文档命名为main.lua,注意后缀名,最好是.lua,不要是.txt,其他的后缀名我也没试过 > ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200212222624121.png) ## 2、编写程序 > 双击main.lua打开复制如下代码,然后`保存` > 这里有些朋友可能会说,你刚才在前言上面不是说可以不用main函数吗,这里怎么有个`user_main()` > 没错确实可以不用main函数,不信等会你测试完成我的代码后,可以自己试,不会有任何问题 > 我这里利用系统任务创建了一个main函数,可能是因为我有强迫症吧 > 我个人觉得lua虽然可以直接写程序,但是文件一多,程序就显得比较乱 > 这是我的个人原因,我习惯有一个函数能够统一运行用户程序代码,以后的教程我放出来的程序都会是这个程序格式 > 可以将下面这段程序理解为一个工程模板,以后的程序我都是在这个模板上面改的 ```c --必须在这个位置定义PROJECT和VERSION变量 --PROJECT:ascii string类型,可以随便定义,只要不使用,就行 --VERSION:ascii string类型,如果使用Luat物联云平台固件升级的功能,必须按照"X.X.X"定义,X表示1位数字;否则可随便定义 PROJECT = "LED" VERSION = "0.0.1" require "sys" --加载日志功能模块,并且设置日志输出等级 --如果关闭调用log模块接口输出的日志,等级设置为log.LOG_SILENT即可 require "log" LOG_LEVEL = log.LOGLEVEL_TRACE local function user_main() while true do print("Hello World") sys.wait(1000) end end --启动系统框架,下面不要随便动 sys.taskInit(user_main) sys.init(0, 0) sys.run() ``` > 这个程序的主逻辑很简单,在一个死循环里面`while true do`不停的做`print("Hello World")`输出,然后延时1000ms,继续循环 * print("Hello World"):输出函数 * sys.wait(1000):阻塞延时函数单位毫秒 * sys.taskInit(user_main):创建一个任务,这里创建的是user_main() * sys.init(0, 0):系统框架初始化 * sys.run():系统开始运行 ## 3、下载脚本 > 打开LuaTools(不知道这是什么东西的,去看我的第一篇博客`1、Air720SL模块Luat开发:环境搭建`,从本文的目录处可找到入口) > ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200212231613579.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDU3MDA4Mw==,size_16,color_FFFFFF,t_70) > 点击右边蓝色按钮`下载Lua脚本`![在这里插入图片描述](https://img-blog.csdnimg.cn/2020021223165889.png)进入如下界面 > ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200212231800607.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDU3MDA4Mw==,size_16,color_FFFFFF,t_70) > 点击添加脚本,添加刚才写的程序 > ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200212231856340.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDU3MDA4Mw==,size_16,color_FFFFFF,t_70) > 点击下载脚本,会弹出如下界面 > ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200212231941488.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDU3MDA4Mw==,size_16,color_FFFFFF,t_70) > 直接点击确定,下载器会自动完成脚本库的添加,并且进入下载状态 > ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020021223203293.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDU3MDA4Mw==,size_16,color_FFFFFF,t_70) > 按下复位按钮,程序开始下载,等待下载完成 > ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200212232143469.png) > 关闭下载界面,回到主界面,选择USB打印,并且打开端口![在这里插入图片描述](https://img-blog.csdnimg.cn/202002122322121.png) > 系统会打印一些无关的消息,我们的`Hello World`就藏在里面 > ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200212232405188.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDU3MDA4Mw==,size_16,color_FFFFFF,t_70) > 自己要是不想找的话,那就等一会,系统会逐渐停止抽搐 > ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200212232639885.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDU3MDA4Mw==,size_16,color_FFFFFF,t_70)直到满屏的`Hello World`出现,我们的第一个例程到此结束
发表于 2020-02-12 23:50
阅读 ( 3191 )
分类:
默认分类
7 推荐
收藏
你可能感兴趣的文章
10、合宙Air模块Luat开发:JSON字符串的生成与解析
2300 浏览
9、合宙Air模块Luat开发:认识NVS数据管理模块
1997 浏览
8、合宙Air模块Luat开发:基于官方库的二次封装,使串口更加易用
2556 浏览
7、合宙Air模块Luat开发:定时器的使用方法
2138 浏览
X、合宙Air模块Luat开发:全网首发,通过iic直接驱动OLED,720Sl开始有显时代
2734 浏览
6、合宙Air模块Luat开发:又是一种新的外设之ADC模数转换,现在我们可以采集模拟量数据了
2225 浏览
相关问题
Air720SL的I2C及I2C2对应设备ID是?如何使用api读写16位地址寄存器
0 回答
Air208编程
1 回答
Air202设置闹钟“AT+CALA=?”
2 回答
4G模块能自动发短信吗?4G模块实用4G通信时也能用MQTT指令吗?Air720D模块支持与MicroPython的单片机集成开发吗?比如:MicroBit的套件
1 回答
Air202 MQTT如何发送USERNAME PASSWORD ID ?
1 回答
Air200关于SW_DEFAULT_1.0.2_Luat_V0013_Air200_SSL.lod的问题
1 回答
0 条评论
请先
登录
后评论
陈夏
26 篇文章
作家榜
»
技术销售Delectate
43 文章
陈夏
26 文章
国梁
24 文章
miuser
21 文章
晨旭
20 文章
朱天华
19 文章
金艺
19 文章
杨奉武
18 文章
×
发送私信
发给:
内容:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!