关于ESP8266 NodeCMU固件没法刷入新代码的解决方法

  在玩ESP8266时,有时候会无心中写了致使死循环的代码,或都某些函数传递了不合适的参数致使系统崩溃,这可能会致使ES8266不停地重启,这时咱们发现没法刷入新的代码,也没法删除8266中的原代码。我曾经就由于这个问题报废了块板子。。。心痛。。。less

  后来经过在网上找相关资料以及本身分析,总结了如下两个方法去避免以上状况:函数

缘由分析:NodeMCU程序出现错误时,可能会致使ESP8266不停地重启,而且重启速度太快以致于咱们都没法删除板子里的原代码(甚至从新刷ROM也没法刷入),更没法从新写入程序。为避免这种状况,可采用以下方法:lua


方法一:能够在开发调试阶段,在文件头加入以下代码:
gpio.mode(1,gpio.INPUT)
v=gpio.read(1)
print("--Security Port D1:"..v)
if(v==1) then
file.remove("init.lua")
print("--file init.lua removed.")
end
当没法刷入程序时,咱们能够将GPIO1置为高电平,系统重启时便会自动删除代码文件。spa


方法二:.将核心代码不要放在init.lua中,启动时在init.lua中延迟一段时间后调用核心代码文件。
tmr.alarm(0, 2000, 0, function()
dofile("code.lua") ---加载的模块文件
end)
这样在核心代码出问题且没法刷入新的代码时,重启模块利用init.lua中的延迟间隔从新覆盖核心代码。调试

-----------------code

By: ShadowlessWalker 2020年1月11日开发

相关文章
相关标签/搜索