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

  后来通过在网上找相关资料以及自己分析,总结了以下两个方法去避免以上情况:

原因分析:NodeMCU程序出现错误时,可能会导致ESP8266不停地重启,并且重启速度太快以至于我们都无法删除板子里的原代码(甚至重新刷ROM也无法刷入),更无法重新写入程序。为避免这种情况,可采用如下方法:

方法一:可以在开发调试阶段,在文件头加入如下代码:
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置为高电平,系统重启时便会自动删除代码文件。

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

关于ESP8266 NodeCMU固件无法刷入新代码的解决方法的更多相关文章

  1. 极路由1s,固件需要刷入RipOS系统的加40块

    极路由1s,固件需要刷入RipOS系统的加40块,集成wifidog功能,wifi广告路由器的理想选择功能. 经过测试,无线性能稳定,无线可带32个手机客户端. 具体配置: 7620CPU ,主频58 ...

  2. ubuntu使用ssh登入不执行.bashrc解决方法

    解决方法,可以直接输入 bash即可. 理解 bashrc 和 profile linux bashrc profile SEP 30TH, 2011 BY SUNTEYA 在一般的 linux 或者 ...

  3. poi导出excel出现本工作薄不能再使用其他新字体的解决方法

    最近使用POI处理EXCEL,当处理的单元格太多时,就会出现,本工作薄使用字体过多,不能再使用其他新的字体的是提示. 网上很多方法告诉我,要怎么修改excel文件,但是这个解决不了问题啊,难道让客户去 ...

  4. 让ie浏览器支持html5新标签的解决方法(使用html5shiv)

    没估计错的话旧版浏览器都是不识别这些新增的标签所以都是用行内元素来处理解决的,所以,有一个解决办法的突破口就是让它变成块状元素就不会处于同一行了,这样在新旧浏览器都是可以显示同样的效果,再者就是让浏览 ...

  5. 使用layui 做后台管理界面,在Tab中的链接点击后添加一个新TAB的解决方法

    给链接或按钮  添加 onclick="self.parent.addTab('百度','http://www.baidu.com','icon-add')" 如: <a h ...

  6. easyui 后台页面,在Tab中的链接点击后添加一个新TAB的解决方法

    1.示例1 新增一个按钮 添加点击事件 onclick="self.parent.addTab('百度','http://www.baidu.com','icon-add')" 如 ...

  7. ie8以下不兼容h5新标签的解决方法

    HTML5新添了一些语义化标签,他们能让代码语义化更直观易懂,有利于SEO优化.但是此HTML5新标签在IE6/IE7/IE8上并不能识别,需要进行JavaScript处理. 解决思路就是用js创建h ...

  8. 真正解决vbox不能为虚拟电脑打开一个新任务的解决方法

    今天小编电脑上出现了一个问题,如上图,经过了一个朋友的帮助终于问题解决了,解决方法: 在每一个中把 红框中打上勾号即可

  9. php 写内容入csv文件乱码解决方法

    加入BOM头即可 fwrite($fp,"\xEF\xBB\xBF"); 参考:http://justcoding.iteye.com/blog/1668308

随机推荐

  1. 9-6 UVa 11400

    参考 http://www.cnblogs.com/Kiraa/p/5510757.html http://www.cnblogs.com/zhaopAC/p/5159950.html 根据题目说明中 ...

  2. 7种最常见的Hadoop和Spark项目

    7种最常见的Hadoop和Spark项目 如果您的Hadoop项目将有新的突破,那么它必定与下边介绍的七种常见项目很相像. 有一句古老的格言是这样说的,如果你向某人提供你的全部支持和金融支持去做一些不 ...

  3. html中让多个li标签横排显示

    1.我们可以通过为ul标签下所有li标签设定样式“display:inline-block”的方式,让多个li标签横排显示 2.除了以上方法,我们还可以所有li标签使用float(浮动)的方式,让多个 ...

  4. Python--day63--单表的增删改查/GET和POST/request相关知识点回顾

  5. java DOM 操作xml

    1 代码如下: package dom.pasing; import java.io.IOException; import java.io.StringWriter; import javax.xm ...

  6. vue在渲染之前拿到数据操作.......vue数据获取

    异步请求数据,但是生命周期函数也是异步的,怎么才能保证渲染之前就能拿到数据呢? 官方给了两种方案, 我们可以在异步获取数据的时候加上一个loading表示现在在获取数据..... 由于ajax是异步操 ...

  7. 使用vuex来管理数据

    最近一直工作比较忙,博客已经鸽了好久了,趁着今天是周末,写点东西吧 使用vuex来管理数据 最近一直在用vue做项目,但是却从来没真正去用过vuex,因为一直感觉很复杂,其实真正去研究一下啊,就会发现 ...

  8. 免费开源3D模型设计软件汇总

    免费开源3D模型设计软件汇总 3D 打印需要先通过计算机辅助设计(CAD)进行建模,再将建好的3D模型“分割”成逐层的截面,从而指导3D打印机进行逐层打印.因此用于3D打印的3D模 型大都储存或输出成 ...

  9. H3C TFTP文件传输过程

  10. 用nodejs创建服务器显示html页面

    nodejs版本:v10.14.2 1.首先准备一个简单的html页面 <!DOCTYPE html> <html lang="en"> <head& ...