ESP8266入坑笔记(2) LUA下的uart及tmr

不得不说lua语言的语法真的太简洁了,简洁到就跟白话文一样,基本没什么需要注意的

 

NodeMCU ESP8266的相关API都可以在官方文档里找到很详细的说明:

https://nodemcu.readthedocs.io/en/master/

 

以下部分大多数来源于官方文档

一、uart

uart的默认设置由构建时设置控制。默认速率为115200 bps。此外,在平台启动后的前两分钟启用自动波特率检测。这将导致在接收到几个字符后切换到正确的波特率。调用uart.setup时禁用自动波特率检测。

尽管NodeMCU有两个可用的UART(0和1),但UART 1不能接收数据,因此只能发送。

uart.alt() :  更改UART管脚分配。

           0表示标准管脚

           1使用备用引脚GPIO13和GPIO15

uart.on() : 设置回调函数以处理UART事件。

            由于ESP8266的限制,只有UART 0能够接收数据。

uart.setup() : (重新)配置UART的通信参数。

uart.getconfig() : 返回UART的当前配置参数。

uart.write() : 将字符串或字节写入UART。

 

 

二、tmr

主要的函数如下

1.create:在控制函数中可以使用动态计时器代替数字标识。也可以用面向对象的方式进行控制。

local mytimer = tmr.create()

mytimer:register(5000, tmr.ALARM_SINGLE, function (t) print("expired"); t:unregister() end)

mytimer:start()

            计时器对象中支持的函数:

           

           

             例如:循环定时2s输出一个数字

             

2.tmr.delay(100) 延时100us

 

3.tmr.now()

返回以微秒计的系统计数器(系统计数器的当前值)。限制为31位,之后它返回到零。如果您使用此功能来解除或限制GPIO输入,这是非常重要的。

print(tmr.now())

 

4.tmr.softwd()

提供一个简单的软件看门狗,它需要在到期前重新启用或禁用,否则系统将重新启动。

 

5.tmr.time()

返回系统正常运行时间(秒)。限制为31位,之后它返回到零。

 

6.tmr.wdclr()

给系统看门狗喂食。

一般来说,如果你需要使用这个函数,你就错了。

NodeMCU的事件驱动模型意味着不需要坐在硬循环中等待事情的发生。相反,只需在发生某些事情时使用回调来获得通知。使用这种方法,不应该需要手动为系统看门狗供电。

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值