3

我在我的 nodemcu/ESP8266 板上使用无限循环加载 init.lua 时出错。

然后板子继续重启,没有执行任何其他指令。

i = 10
timerId = 0
timerDelay = 30000 -- Milisec
pin = 5
gpio.mode(pin,gpio.INPUT) 
repeat(    
    print(gpio.read(pin))
    i = i + 1
    end)
until i < 5
4

6 回答 6

2

I tried flashing the board

python esptool.py -p /dev/tty.wchusbserial1450 run

python esptool.py -p /dev/tty.wchusbserial1450 write_flash 0x0000 ../nodemcu_latest.bin

And after that fix my code and load it again and now works fine

于 2015-07-11T03:48:20.410 回答
2
--This file is init.lua
local IDLE_AT_STARTUP_MS = 10000;

tmr.alarm(1,IDLE_AT_STARTUP_MS,0,function()
    dofile("program.lua")--Write your program name in dofile
end)

我确实使用这种策略来防止出现错误时在启动时出现无限循环。将此文件另存为 init.lua 并将您的程序写入 program.lua

于 2016-03-21T20:41:10.547 回答
1

我所做的是使用 ESPlorer(Java 应用程序)http://esp8266.ru/esplorer/#download

当我在闲逛时,我只init.lua调用了我的文件init1.lua,如果 ESP 重新启动没问题,您只需单击init1.lua右侧显示的按钮(在使用“重新加载”按钮显示文件系统内容之后)

很好很简单,完成后,您可以右键单击文件将其重命名为init.lua.

于 2015-12-01T04:22:55.253 回答
0

此答案与researcher01 的答案基本相同,但使用OO API 计时器,因为上面使用的计时器在 2019 年被删除。

--This file is init.lua
local IDLE_AT_STARTUP_MS = 10000;

tmr.create():alarm(IDLE_AT_STARTUP_MS, tmr.ALARM_SINGLE,function()
    dofile("program.lua")--Write your program name in dofile
end)
于 2021-01-27T23:43:42.150 回答
0

我遇到了同样的问题并且陷入了while循环。

刷新不同的固件对我有用。

于 2017-09-21T04:51:46.557 回答
0

没有一种优雅的恢复方式。

最好的办法是建立一种方法来防止您的代码在紧急情况下声明。timer.alarm例如,正如 TerryE 建议的那样,使用in设置一个一次性计时器init.lua来调用您的主代码,并有足够长的延迟,您可以timer.stop在不想启动到主代码的情况下调用。

于 2015-10-04T19:16:57.120 回答