關(guān)于NodeMcu刷固件遇到的問(wèn)題及解決
遇到的問(wèn)題
通過(guò)https://nodemcu-build.com/ 構(gòu)建自己需要的固件下載刷機(jī)的過(guò)程中,我發(fā)現(xiàn)雖然用nodemcu_flasher刷入nodeMcu過(guò)程中,我選擇了所下載的固件脊岳,但調(diào)試時(shí),會(huì)出現(xiàn)亂碼橫飛垛玻,nodeMcu上LED狂閃割捅,無(wú)論怎么重啟復(fù)位,都無(wú)效帚桩,說(shuō)明刷機(jī)失敗亿驾,固件無(wú)法刷入或是刷入失敗。
上網(wǎng)找了很多說(shuō)法账嚎,調(diào)整nodemcu_flasher刷機(jī)方式莫瞬,比如波特率等儡蔓,還是無(wú)效,換調(diào)試器為ESPlorer疼邀,也還是亂碼在跳動(dòng)喂江。
這說(shuō)明不是調(diào)試器問(wèn)題,還是刷機(jī)方式有問(wèn)題旁振。
解決辦法
知道了刷機(jī)方式有問(wèn)題获询,我試著網(wǎng)上一些辦法,通過(guò)進(jìn)入刷機(jī)方式拐袜,再次嘗試用nodemcu_flasher刷機(jī)
進(jìn)入刷機(jī)模式方法:
按住 FLASH 按鍵(這里不松開(kāi))
按下 RST 按鍵并松開(kāi)
松開(kāi) FLASH 按鍵
還是失敗吉嚣,之后看一些教程文章,用的是esptool.py刷機(jī)蹬铺,想想可能是刷機(jī)工具出了問(wèn)題尝哆,于是找到了官方說(shuō)明文檔:https://nodemcu.readthedocs.io/en/master/en/flash/
里面提到了3種刷機(jī)工具:
之前本人用的都是第2個(gè),它其實(shí)在2015年9月就停止更新了甜攀,所以它能刷舊固件较解,但對(duì)于新的固件就支持的不好,出現(xiàn)無(wú)法先格式化再刷機(jī)的情況赴邻,導(dǎo)致刷機(jī)失敗印衔。
第1個(gè)esptool.py是需要再python2.7環(huán)境下才能正常運(yùn)行,本人裝的是python3.5的版本姥敛,折騰一下比較麻煩奸焙,又覺(jué)得用命令行去使用不夠好用,就選用了第3個(gè)刷機(jī)工具NodeMCU PyFlasher彤敛,它是基于esptool.py的可視化版本与帆,底層還是用esptool.py,但加了個(gè)UI墨榄,又不用安裝python玄糟,在window下可以直接使用,下載地址:https://github.com/marcelstoer/nodemcu-pyflasher/releases
重新連接Tera Term袄秩,不再亂碼跳動(dòng)阵翎,板上的LED也不再閃爍。
回車開(kāi)始輸入
print("Hello NodeMcu")
之剧,返回Hello NodeMcu
郭卫,調(diào)試成功,表明固件輸入成功背稼,問(wèn)題解決贰军。
ESPlorer介紹
之前提到了這個(gè)調(diào)試工具,這里插入介紹一下蟹肘。ESPlorer是基于JAVA開(kāi)發(fā)的词疼,所以要使用它俯树,需要配置安裝Java的SDK,并且為windows配置Java環(huán)境贰盗,這些都比較容易聘萨,隨便百度都能找到相關(guān)教程,乃至一鍵配置的腳本童太。然后點(diǎn)擊ESPlorer文件夾里的ESPlorer.bat就能運(yùn)行它了米辐。
相較于Tera Term只能一個(gè)命令傳過(guò)去運(yùn)行,它可以寫(xiě)完整段程序后书释,再保存上傳NodeMcu運(yùn)行翘贮,復(fù)雜些功能的實(shí)現(xiàn)就靠它了。
有時(shí)可能ESPlorer沒(méi)有反應(yīng)的情況或者其他bug爆惧,請(qǐng)重啟這個(gè)軟件狸页,畢竟版本是0.2.0-rc5,bug會(huì)比較多扯再,下次找到更好的調(diào)試器(IDE)芍耘,再換吧,先學(xué)著用用熄阻,應(yīng)該足夠了斋竞。
結(jié)尾
通過(guò)找相關(guān)資料,發(fā)現(xiàn)之前刷固件失敗主要是秃殉,由于所用的刷固件軟件版本太久坝初,不兼容新固件,也沒(méi)有清除原flash里固件數(shù)據(jù)的功能钾军,導(dǎo)致失敗鳄袍,換用基于esptool.py的NodeMCU PyFlasher,問(wèn)題解決吏恭。(當(dāng)然用舊的固件對(duì)于新手的我來(lái)說(shuō)拗小,練手也是足夠了,刷不刷新固件問(wèn)題不大)樱哼。同時(shí)介紹了一下ESPlorer這個(gè)IDE的基礎(chǔ)用法哀九。
參考資料:
官方文檔:https://nodemcu.readthedocs.io/en/master/en/flash/
nodemcu-pyflasher頁(yè)面:https://github.com/marcelstoer/nodemcu-pyflasher
esptool頁(yè)面:https://github.com/espressif/esptool