当前位置: 首页 > news >正文

做网站微信公众号/社群营销平台有哪些

做网站微信公众号,社群营销平台有哪些,做一网站要什么,在wordpress教程第一个Luat程序 目录名称 第一个Luat程序 第一个工程 安装编辑器 更改软件各项默认设置 推荐安装的拓展 新建工程 模块化编程 连接硬件 点亮LED小灯 让LED灯闪烁起来 第一个工程 本文将从零开始,引导你建立第一个工程。在阅读本文前,请确保…

第一个Luat程序

目录名称

  • 第一个Luat程序

  • 第一个工程

  • 安装编辑器

  • 更改软件各项默认设置

  • 推荐安装的拓展

  • 新建工程

  • 模块化编程

  • 连接硬件

  • 点亮LED小灯

  • 让LED灯闪烁起来

第一个工程

本文将从零开始,引导你建立第一个工程。在阅读本文前,请确保:

  • 已经学习完Lua语法相关知识
  • 已经学会使用Luatools烧录代码
  • 有一台运行Microsoft Windows系统的电脑
  • 准备好了一个Luat开发板

学习本文后,你将会掌握:

  • 新建一个全新的Luat工程
  • 简单控制模块的GPIO

安装编辑器

代码编辑器有很多可供选择,比如notepad++、Sublime Text,这里我们选择功能强大的Visual Studio Code(vscode)作为主力编辑器。

  1. 下载安装
    打开官网:https://code.visualstudio.com/
    点击官网那个大大的绿色按键,下载

    下载完后直接安装
    安装时注意改一下这个选项
  2. 更改语言
    首先,我们要把软件改成中文的
    在左侧点击拓展输入chinese安装中文语言拓展

更改软件各项默认设置

打开软件,在软件页面,按下快捷键Ctrl+,(逗号),打开设置页面

  1. 中文字体使用微软雅黑
    Editor: Font Family内容改为如下:
    Consolas, 'Microsoft Yahei UI Light','Courier New', monospace

  2. 空格和tab显示小点和箭头占位符

    显示效果是这样

  3. 关闭复制当前行功能

  4. 自动猜测文件编码
    这个可以准确识别大部分文件的编码,当然有时候还是会识别错误,但总比每次都要手动选好多了

  5. 末尾自动插入新行

  6. 自动去除每行末尾多余的空格

推荐安装的拓展

由于有很多重名插件,请仔细查看我截图所示的插件,保证作者相同再安装

  1. Lua
    Lua Language Server coded by Lua
    自动补全、高亮、静态检查等功能的插件,国人出品

  2. LUAT
    LUAT接口代码自动补全

  3. indent-rainbow
    缩进自动彩色,大大提高编程效率(前提是你按规范缩进了)

  4. Rainbow Brackets
    括号彩色分组,防止你看错括号对

新建工程

在你觉得适当的位置,新建一个文件夹,名为LUAT-LED,使用你的代码编辑器打开该文件夹,vscode如下图所示操作:

打开后,在编辑器左侧的文件夹中,右击空白处,新建文件,输入文件名main.lua,回车键保存:

接着,在新建的文件夹中添加如下代码,完成最主要的main.lua文件的编写:

`--必须在这个位置定义PROJECT和VERSION变量` 
`--PROJECT:ascii string类型,可以随便定义,只要不使用,就行` 
`--VERSION:ascii string类型,如果使用Luat物联云平台固件升级的功能,必须按照"X.X.X"定义,X表示1位数字;否则可随便定义` 
`PROJECT = "LED-TEST"` 
`VERSION = "0.0.1"` 
`--根据固件判断模块类型` 
`moduleType = string.find(rtos.get_version(),"8955") and 2 or 4` 
`--加载日志功能模块,并且设置日志输出等级` 
`--如果关闭调用log模块接口输出的日志,等级设置为log.LOG_SILENT即可` 
`require "log"` 
`LOG_LEVEL = log.LOGLEVEL_TRACE` 
`require "sys"` 
`require "net"` 
`--每1分钟查询一次GSM信号强度` 
`--每1分钟查询一次基站信息` 
`net.startQueryAll(60000, 60000)` 
`--加载硬件看门狗功能模块` 
`--根据自己的硬件配置决定:1、是否加载此功能模块;2、配置Luat模块复位单片机引脚和互相喂狗引脚` 
`--合宙官方出售的Air201开发板上有硬件看门狗,所以使用官方Air201开发板时,必须加载此功能模块` 
`--如果用的是720 4g模块,请注释掉这两行` 
`require "wdt"` 
`wdt.setup(pio.P0_30, pio.P0_31)` 
`--加载网络指示灯功能模块` 
`--根据自己的项目需求和硬件配置决定:1、是否加载此功能模块;2、配置指示灯引脚` 
`--合宙官方出售的Air800和Air801开发板上的指示灯引脚为pio.P0_28,其他开发板上的指示灯引脚为pio.P1_1` 
`require "netLed"` 
`netLed.setup(true,moduleType == 2 and pio.P1_1 or pio.P2_0,moduleType == 2 and nil or pio.P2_1)--自动判断2/4g默认网络灯引脚配置` 
`--网络指示灯功能模块中,默认配置了各种工作状态下指示灯的闪烁规律,参考netLed.lua中ledBlinkTime配置的默认值` 
`--如果默认值满足不了需求,此处调用netLed.updateBlinkTime去配置闪烁时长` 
`--加载错误日志管理功能模块【强烈建议打开此功能】` 
`--如下2行代码,只是简单的演示如何使用errDump功能,详情参考errDump的api` 
`require "errDump"` 
`errDump.request("udp://ota.airm2m.com:9072")` 
`--加载远程升级功能模块【强烈建议打开此功能】` 
`--如下3行代码,只是简单的演示如何使用update功能,详情参考update的api以及demo/update` 
`-- PRODUCT_KEY = "xxxxxx"` 
`-- require "update"` 
`-- update.request()` 
`--启动系统框架` 
`sys.init(0, 0)` 
`sys.run()` 

我们将main.lua和基本的task库文件烧录到开发板中(不烧录会的请看第一章),会发现:并没有什么事情发生(因为代码基本是空的啊2333)

模块化编程

在编写lua功能时,我们一般会把相似功能的代码放到同一个文件中,写完后只需要在main.lua中添加require语句即可,所以我们需要将main.lua结尾改成如下形式:

`....上面一堆代码省略` 
`--加载远程升级功能模块【强烈建议打开此功能】` 
`--如下3行代码,只是简单的演示如何使用update功能,详情参考update的api以及demo/update` 
`-- PRODUCT_KEY = "xxxxxx"` 
`-- require "update"` 
`-- update.request()` 
`require "ledtest"    --新加上的代码` 
`--启动系统框架` 
`sys.init(0, 0)` 
`sys.run()` 

添加完后,使用和新建main.lua文件相同的方式,新建一个新的文件ledtest.lua
我们在ledtest.lua的第一行可以先加上如下一句话:
module(..., package.seeall) --使得文件中的函数在何处都可调用

连接硬件

注意:这里演示用的是2g模块,4g模块请详细阅读下面代码注释中的信息进行修改,代码不可以直接拿去用!!

由于我这里使用的是普通的S9开发板,和一个配套的LED灯小主板,所以我直接将其连接到了双排针上,插入方式如下图:

为了照顾其他未使用S9开发板的读者,我将led的电气连接在下方进行标识,有条件的可以手动按下文进行连接(用的是Air202模块,其他模块请根据情况自行修改):

引脚名称

灯序号

另一端连接哪里

SPI1_CLK/GPIO_8

LED1

GND

SPI1_DO/GPIO_11

LED2

GND

SPI1_DI/GPIO_12

LED3

GND

UART1_CTS/GPIO_3

LED4

GND

UART1_RTS/GPIO_2

LED5

GND

可以看到,每个管脚都有各种复用功能,我们本文之将其作为普通GPIO口使用

点亮LED小灯

模块中几乎所有的函数都可以在wiki中找到,所以我们也去wiki中进行搜索
打开openluat的wiki页:http://wiki.openluat.com/
在网页左边选择Luat API接口,可以看到所有接口都被整理好放到了这里,点击LuaTaskpins可以找到我们需要的函数接口:

这样我们就明白这个改如何点亮LED小灯了,我们将ledtest.lua改成如下代码:

`module(..., package.seeall)` 
`require"pins"  --用到了pin库,该库为luatask专用库,需要进行引用` 
`-- GPIO 0到GPIO 31表示为pio.P0_0到pio.P0_31 。` 
`-- GPIO 32到GPIO XX表示为pio.P1_0到pio.P1_(XX-32),例如GPIO33 表示为pio.P1_1` 
`if moduleType == 2 then` `pmd.ldoset(5,pmd.LDO_VMMC)  --使用某些GPIO时,必须在脚本中写代码打开GPIO所属的电压域,配置电压输出输入等级,这些GPIO才能正常工作` 
`end` 
`--注意!!!4G模块无需设置电压域!` 
`--设置led的GPIO口` 
`local led1 = pins.setup(pio.P0_8,0)--如果你用的是4G模块,请更改这个gpio编号` 
`local led2 = pins.setup(pio.P0_11,0)--如果你用的是4G模块,请更改这个gpio编号` 
`local led3 = pins.setup(pio.P0_12,0)--如果你用的是4G模块,请更改这个gpio编号` 
`local led4 = pins.setup(pio.P0_3,0)--如果你用的是4G模块,请更改这个gpio编号` 
`local led5 = pins.setup(pio.P0_2,0)--如果你用的是4G模块,请更改这个gpio编号` 
`--将gpio口都置为高电平` 
`led1(1)` 
`led2(1)` 
`led3(1)` 
`led4(1)` 
`led5(1)` 

更改完保存后,将改好的文件全部烧入模块中,查看效果
如果一切正常的话,五个灯都会正常被点亮
led1(1)改为led1(0)即可熄灭第一个灯,以此类推,可以多尝试更改着玩一下,再看下一部分

让LED灯闪烁起来

LED灯已经可以点亮了,那么我们就要让它动起来
我们可以在wiki页查到,开启一个定时器函数为sys.timerStart(fnc, ms, ...),那么我们可以将代码改成如下样式:

`module(..., package.seeall)` 
`require"pins"  --用到了pin库,该库为luatask专用库,需要进行引用` 
`-- GPIO 0到GPIO 31表示为pio.P0_0到pio.P0_31 。` 
`-- GPIO 32到GPIO XX表示为pio.P1_0到pio.P1_(XX-32),例如GPIO33 表示为pio.P1_1` 
`if moduleType == 2 then` `pmd.ldoset(5,pmd.LDO_VMMC)  --使用某些GPIO时,必须在脚本中写代码打开GPIO所属的电压域,配置电压输出输入等级,这些GPIO才能正常工作` 
`end` 
`--注意!!!4G模块无需设置电压域!` 
`--设置led的GPIO口` 
`local led1 = pins.setup(pio.P0_8,0)--如果你用的是4G模块,请更改这个gpio编号` 
`local led2 = pins.setup(pio.P0_11,0)--如果你用的是4G模块,请更改这个gpio编号` 
`local led3 = pins.setup(pio.P0_12,0)--如果你用的是4G模块,请更改这个gpio编号` 
`local led4 = pins.setup(pio.P0_3,0)--如果你用的是4G模块,请更改这个gpio编号` 
`local led5 = pins.setup(pio.P0_2,0)--如果你用的是4G模块,请更改这个gpio编号` 
`local ledon = false --led是否开启` 
`function changeLED()` `if ledon then` `led1(1)` `led2(1)` `led3(1)` `led4(1)` `led5(1)` `else` `led1(0)` `led2(0)` `led3(0)` `led4(0)` `led5(0)` `end` `ledon = not ledon` `sys.timerStart(changeLED,1000)--一秒后执行指定函数` 
`end` 
`changeLED() --开机后立刻运行该函数` 

保存后烧入程序即可,如果不出意外,五个LED灯就应该一秒亮一秒灭了
既然学会了延时、点亮LED、熄灭LED,那么就可以自己尝试编写一个流水灯了,这里不再赘述,请大家自己尝试

http://www.jmfq.cn/news/5177701.html

相关文章:

  • 网站设计流程包括/google chrome网页版
  • 上海市青浦区建设局网站/什么平台可以免费打广告
  • 做爰午夜福利全过程视频网站/怎么注册个人网站
  • 查询食品注册商标查询官网/海淀seo搜索引擎优化公司
  • 怎么设计网站内容/培训课程安排
  • 汕尾市企业网站seo点击软件/武汉网络优化知名乐云seo
  • 泰安网签查询2023/合肥seo按天收费
  • 外贸网站 万网/品牌型网站制作价格
  • 辽宁省建设工程信息网官网新网站/剪辑培训班一般学费多少
  • 网站建设教程网页/制作网页的工具软件
  • 深圳网站建设推广公司/怎么出售友情链接
  • 调研政府网站建设工作/域名站长工具
  • 程序员外包网站/百度资源共享链接分享组
  • 廊坊哪里有做网站建设的/seo怎么优化方案
  • 免费建站团队/你就知道
  • flash布局网站/网站seo设计
  • 苏州做网站哪家公司好/广州网站优化推广
  • 谷歌google/seo软件推广
  • 公司网站维护工作/网销怎么做才能做好
  • 网站开发市场/彩虹云商城网站搭建
  • 网站开发公司哪家靠谱/官网优化包括什么内容
  • 哪个网站有做电箱电柜的图纸/总排行榜总点击榜总收藏榜
  • 如何做网站流量分析/网络营销的方法有哪些?
  • 怎么用小皮创建网站/免费推广的途径与原因
  • 专业网站建设哪个好/如何有效的推广宣传
  • 长春微信网站建设/关键词优化策略
  • 大连模板建站软件/国外服务器免费ip地址
  • cn网站怎么做/深圳产品网络推广
  • 东莞网站设计与网站制作/官网首页入口百度
  • 唐山网站建设服务/seo优化外包公司