3.关于NodeMcu刷固件遇到的问题及解决

关于NodeMcu刷固件遇到的问题及解决

遇到的问题

通过https://nodemcu-build.com/ 构建自己需要的固件下载刷机的过程中,我发现虽然用nodemcu_flasher刷入nodeMcu过程中,我选择了所下载的固件,但调试时,会出现乱码横飞,nodeMcu上LED狂闪,无论怎么重启复位,都无效,说明刷机失败,固件无法刷入或是刷入失败。

3.关于NodeMcu刷固件遇到的问题及解决_第1张图片
Tera Term调试乱码图.png

上网找了很多说法,调整nodemcu_flasher刷机方式,比如波特率等,还是无效,换调试器为ESPlorer,也还是乱码在跳动。

3.关于NodeMcu刷固件遇到的问题及解决_第2张图片
ESPlorer截图(这不是跳乱码图).png

这说明不是调试器问题,还是刷机方式有问题。

解决办法

知道了刷机方式有问题,我试着网上一些办法,通过进入刷机方式,再次尝试用nodemcu_flasher刷机

进入刷机模式方法:
按住 FLASH 按键(这里不松开)
按下 RST 按键并松开
松开 FLASH 按键

还是失败,之后看一些教程文章,用的是esptool.py刷机,想想可能是刷机工具出了问题,于是找到了官方说明文档:https://nodemcu.readthedocs.io/en/master/en/flash/
里面提到了3种刷机工具:

  1. esptool.py
  2. nodemcu flasher
  3. NodeMCU PyFlasher

之前本人用的都是第2个,它其实在2015年9月就停止更新了,所以它能刷旧固件,但对于新的固件就支持的不好,出现无法先格式化再刷机的情况,导致刷机失败。

第1个esptool.py是需要再python2.7环境下才能正常运行,本人装的是python3.5的版本,折腾一下比较麻烦,又觉得用命令行去使用不够好用,就选用了第3个刷机工具NodeMCU PyFlasher,它是基于esptool.py的可视化版本,底层还是用esptool.py,但加了个UI,又不用安装python,在window下可以直接使用,下载地址:https://github.com/marcelstoer/nodemcu-pyflasher/releases

3.关于NodeMcu刷固件遇到的问题及解决_第3张图片
NodeMCU PyFlasher刷固件.png
3.关于NodeMcu刷固件遇到的问题及解决_第4张图片
刷固件成功.png

重新连接Tera Term,不再乱码跳动,板上的LED也不再闪烁。

3.关于NodeMcu刷固件遇到的问题及解决_第5张图片
连接Tera Term.png

回车开始输入 print("Hello NodeMcu"),返回 Hello NodeMcu,调试成功,表明固件输入成功,问题解决。

ESPlorer介绍

之前提到了这个调试工具,这里插入介绍一下。ESPlorer是基于JAVA开发的,所以要使用它,需要配置安装Java的SDK,并且为windows配置Java环境,这些都比较容易,随便百度都能找到相关教程,乃至一键配置的脚本。然后点击ESPlorer文件夹里的ESPlorer.bat就能运行它了。

3.关于NodeMcu刷固件遇到的问题及解决_第6张图片
ESPlorer.png

相较于Tera Term只能一个命令传过去运行,它可以写完整段程序后,再保存上传NodeMcu运行,复杂些功能的实现就靠它了。
有时可能ESPlorer没有反应的情况或者其他bug,请重启这个软件,毕竟版本是0.2.0-rc5,bug会比较多,下次找到更好的调试器(IDE),再换吧,先学着用用,应该足够了。

结尾

通过找相关资料,发现之前刷固件失败主要是,由于所用的刷固件软件版本太久,不兼容新固件,也没有清除原flash里固件数据的功能,导致失败,换用基于esptool.py的NodeMCU PyFlasher,问题解决。(当然用旧的固件对于新手的我来说,练手也是足够了,刷不刷新固件问题不大)。同时介绍了一下ESPlorer这个IDE的基础用法。

参考资料:
官方文档:https://nodemcu.readthedocs.io/en/master/en/flash/
nodemcu-pyflasher页面:https://github.com/marcelstoer/nodemcu-pyflasher
esptool页面:https://github.com/espressif/esptool

你可能感兴趣的:(3.关于NodeMcu刷固件遇到的问题及解决)