刚拿到ESP8266板子, 迫不及待网上找到DEMO程序如下:
ledswitch=0
pin=4
gpio.mode(pin,gpio.OUTPUT)
tmr.alarm(0,2000,1,function()
if ledswitch==0 then
ledswitch=1 --led on
gpio.write(pin,gpio.LOW)
else
ledswitch=0 --led off
gpio.write(pin,gpio.HIGH)
end
end)
该代码保存、上传,然后愉快点了RUN,结果悲剧了,居然报错了“ attempt to call field 'alarm' (a nil value) ”, 该DEMO程序刷固件前还是好的可以运行啊, 为啥忽然来一个坑?
一番bing搜索,原来最新的固件在使用timer定时器时,需要先定义。呕吐呀,这个nodemcu的lua编程环境的向前兼容性简直太垃圾了,赶紧换新的语法伺候,新代码如下:
ledswitch=0
pin=4
gpio.mode(pin,gpio.OUTPUT)
local tObj = tmr.create()
tObj:alarm(1000, 1, function ()
if ledswitch==0 then
ledswitch=1 --led on
gpio.write(pin,gpio.LOW)
else
ledswitch=0 --led off
gpio.write(pin,gpio.HIGH)
end
end)
新代码终于没问题可以运行了,LED灯终于开始一闪一闪了。