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