2015-07-08 10 views
3

Я ошибся, загрузив init.lua с бесконечным циклом на моей плате nodemcu/ESP8266.Как восстановить nodemcu бесконечный цикл

Затем плата продолжает перезагрузку без какой-либо другой инструкции.

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 

ответ

2

Я попытался мигания доску

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

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

И после этого исправить мой код и загрузить его снова и теперь работает отлично

+0

Всегда проверяйте код в файле с именем, отличным от init.lua, по этой причине. –

+0

Спасибо, хороший отзыв! – jezuz

+2

+1 к последнему комментарию. Положите tmr.alarm() один выстрел, чтобы запустить приложение после задержки 2-3 секунды. в вашем 'init.lua'. Это достаточно долго, чтобы отправить файл .remove(), чтобы делить файл init.lua, если вы застряли в панике. – TerryE

0

Там это не элегантный способ восстановления.

Лучшее, что нужно сделать, это построить способ предотвратить, чтобы ваш код указывал в чрезвычайной ситуации. Например, как предлагает TerryE, установите таймер с одним выстрелом, используя timer.alarm в init.lua, чтобы вызвать ваш основной код с достаточно длинной задержкой, которую вы можете вызвать timer.stop в случае, если вы не хотите загружать свой основной код.

1

Что я могу сделать, это использовать ESPlorer (Java приложение) http://esp8266.ru/esplorer/#download

Пока я отводом вокруг меня просто мой init.lua файл называется init1.lua, если ESP не перезагружается не его проблемы, вы просто нажмите на init1.lua кнопку, которая отображается на с правой стороны (после того, как вы используете кнопку «Обновить», чтобы отобразить содержимое файловой системы)

Приятно и легко, когда вы сделаете это, вы можете щелкнуть правой кнопкой мыши по файлу, чтобы переименовать его обратно в init.lua.

1
--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

0

У меня была такая же проблема и была застряла в петле while.

Мигает другая прошивка для меня.