解决NodeMCU 烧写固件后依然无限重启

之前在用NodeMCU时候用到了GPIO5,GPIO6,后来导致NodeMCU一直不断重启(现象就是芯片上的LED灯狂闪,串口输出窗口狂输出乱码),重新烧写固件后依然无效,查询过资料后才知道,官网说明

 GPIO6~GPIO11不要使用,否则会引起存储错误,不停重启。

后来查询文档 NodeMCU API中文说明,里面提到有一个flash错误(跟我遇到的存储错误类似,现象类似的都可以用这种方法解决)的解决方法,

flash错误

注意:有些模块在烧写之后启动,串口输出ERROR in flash_read: r=。。。

这是因为模块原来的flash内部没有擦除。

可使用,blank512k.bin,

内容为全0xFF,从0x00000开始烧入。

烧入之后可以正常运行。

网上找了一下没有找到blank512k.bin下载,后来直接自己用标准IO在Ubuntu下写了一段代码生成blank.bin

#include

#include

int main()s

{

FILE *fblank;

char blank[1*1024*1024]={0xFF}; //1M大小

fblank=fopen("./blank1m.bin","w");

fwrite(blank,1,sizeof(blank),fblank);

fclose(fblank);

return 0;

}

因为我们的NodeMCU flash大小有4M,不过我烧写的固件只有600K,所以生成一个1M的blank1m.bin擦除flash就够了(具体大小可以自己设定,只要能够覆盖原来使用过的flash大小范围就够了)

把我们生成的blank1m.bin用ESP8266Flasher工具直接烧写进去,然后再烧写回自己的固件,NodeMCU恢复正常

附上blank1m.bin文件:

https://pan.lanzou.com/b164949/ 

密码:h0ba

你可能感兴趣的:(解决NodeMCU 烧写固件后依然无限重启)