NodeMCU再探

这是一条长期更新的博客

NodeMCU学习中摸索的一些tips

磕磕绊绊的学了几天时间这款单片机,半陌生的lua语言(好歹看过一些python,还是让我亲切了一些),全陌生的编译软件(ESPlorer),让我一度脑壳很疼。不过总算是有了一些收获。在这里给大家分享一下,让后来者可以轻松一些。

tips1: dofile函数

学过单片机的应该都知道,一般不把所有的函数、代码都放在同一个文件中,这会增加查错以及编程的困难度。lua程序也是如此,一个功能放在一个lua文件中比较好,当单片机需要执行某一功能时,仅需调用对应的lua文件即可。如下

dofile("xxx(文件名).lua")

特别注明:当你还在调试程序的时候,千万不能把dofile放入某个lua文件中。
当你在使用NodeMCU的WIFI模块时,连接程序会一直占用你的uart口,导致你无法再下载更新后的或者全新的lua文件,也无法使用ESPlorer右下角的串口输入命令。
这时候你能做的只有——完全擦除flash。

tips2:flash的完全擦除

flash的擦除方法
这位老哥讲的办法真好用!强推!碰到什么妖魔鬼怪搞不定的,擦了重下固件,重新来过!

tips3:remove函数

当你的串口输入命令行可以使用时,这是个很好的删除单片机内程序办法。

remove("xxx(文件名).lua")

tips4:查看NodeMCU信息以及单片机内文件信息及内存的方法

获取单片机信息

   majorVer, minorVer, devVer, chipid, flashid,
   flashsize, flashmode, flashspeed = node.info();
   print("NodeMCU "..majorVer.."."..minorVer.."."..devVer)

查看文件信息

l = file.list();
    for k,v in pairs(l) do
      print("name:"..k..", size:"..v)
    end

后来发现还有更好用的。。。。
点击图示按钮
点击上图按钮可反馈得下图信息↓
NodeMCU再探_第1张图片

tips5: 关于固件烧录

NodeMCU里有一个SPIFFS文件系统(SPI Flash Filing System)镜像工具。

当你第一次烧录固件:
flash中不存在文件系统,固件中自带的SPIFFS的镜像工具会在flash中新建一个文件系统,其起始地址=固件结束地址+64K~128K。

若非第一次烧录固件:
1.新固件大小 < 原固件大小 + 64k ,则原有系统保留;
2.新固件大小 > 原固件大小 + 64k ,则新建一个SPIFFS文件系统覆盖原有系统。

tips6:关于程序下载

NodeMCU与51单片机不同,每次下载程序进去不会替换原有程序。下载程序后会将程序放置在文件系统中的对应地址之中。
而下一次下载程序:
1.若程序名称与文件系统中已经存在的某个程序名称相同,则会替换该程序;
2.若名称不同,则在文件系统的其他地方,将程序放置在某个地址中。

这里做一个粗浅的比喻?

如果把flash看作一个贼简易的Windows系统,那么烧录的固件相当于在c盘,而SPIFFS文件系统就相当于其他盘,用于储存程序。
如果重新烧录固件,lua程序并不会丢失,就像如果重装电脑c盘,其他盘中的文件也不会丢失一样。

嗯,暂时先到这里吧,之后要是再发现什么有趣好用的,会慢慢补充进来,也欢迎大家评论补充,指点迷津,嘻嘻。

你可能感兴趣的:(知识学习贴,单片机初学)