https://www.cnblogs.com/yangfengwu/p/7514336.html
我们写lua用这个软件
如果点击的时候提示安装,,安装就行,,如果没有提示呢可以,按照下面链接的提示自己安装哈,,,,,或者自己百度
http://jingyan.baidu.com/article/3c343ff70bc6ea0d377963df.html
让这个灯亮
这个灯连接到了GPIO2,低电平点亮
gpio.mode(4,gpio.OUTPUT)--输出模式 gpio.write(4,0)--输出低电平
这样的话这个灯就亮了
可能会有疑问,明明是GPIO2为什么填4
看资料
https://nodemcu.readthedocs.io/en/master/en/modules/gpio/#gpio-module
还有一个简介版的资料
对照表
现在下进去
可以先复位一下然后再执行操
对了要是经常出现编译或者下载到模块出问题.........一定是串口模块和WIFI模块通信之间有问题.....尽量使用好的杜邦线,,,尽量短,,,,,再者可以考虑换成pl2303或者CP2102等.......因为自己测试的这两种模块比较可靠
保存到芯片里面
关于
gpio.read()
现在看定时器函数
第一个参数 一共可以同时使用7个定时器,,id号呢是0-6
第二个参数是延时多少ms执行最后面的函数
第三个参数是设置是只执行一次,,还是调用启动函数时执行一下,还是一直间隔第二个参数的时间执行最后面的函数
就让它每隔1s打印一下串口打印111111
- gpio.mode(4,gpio.OUTPUT)
- gpio.write(4,1)
- function aa()--定义一个函数
- print("111111")
- end
- tmr.alarm(0, 1000, 1, aa)
0代表用的标号为0的定时器
1000代表延时1000ms执行aa
1代表
当然您填tmr.ALARM_AUTO也行,,,,,太长啦.....我还是选择填1
如果填写0,那么会延时1000ms然后打印一下111111,,就是第二个参数
如果还想执行一下就调用tmr.start(0)这个里面的0代表的标号为0的定时器....
当然啦关闭这个定时器tmr.start(0)
感觉第一个参数 tmr.ALARM_SINGLE = -1...只是感觉没有试过
更方便点呢
- gpio.mode(4,gpio.OUTPUT)
- gpio.write(4,1)
- tmr.alarm(1, 1000, 1, function()
- print("111111")
- end)
可以看一下我这篇文章
http://www.cnblogs.com/yangfengwu/p/6404695.html
剩余的定时器的方法呢有可能tmr.delay(us) 会用到,,就是延时多少us......
看一下串口....
说一下哈...配置串口是一件及其危险的事情,为什么这样说呢!!
我们烧固件是通过串口,把我们编写的.lua文件保存到模块里面也是通过串口
如果说哈模块一上电就执行了我们配置的串口程序,,,,,那么我们想把新写的程序发给模块就可能写不进去.....造成一个bug了,,,,,
解决方案是
一,重新烧写固件
但是呢也有可能重新烧写固件也不能把以前写的.lua文件清除
二,先烧写别的固件,再烧写现在的
比如:可以先烧写一个AT指令的固件,让它运行一下,然后再重新烧写lua开发版本的,但是也有可能不能把以前写的.lua文件清除
三,修改程序保存的偏移量
您想哈,,我们的.lua程序肯定也在flash里面,,,我烧写固件时把偏移量调大肯定能把我们写的.lua代码给清除掉.要是调整后出现一直发乱码,,恭喜你哈,肯定覆盖到了先前的.lua了...然后呢我再把偏移量调整到0000重新烧写就好啦...
四,其实呢根本解决方案是烧写一个空的bin文件把原先的全都清空
这是空的bin文件
可以看这个,关于各个型号的模块的Flash大小
http://wiki.ai-thinker.com/_media/esp8266/esp8266_module_list.png
如果出现
等着格式化文件系统,,就等着哈
好现在做一个程序我发给串口什么数据,串口就回给我什么数据
下面的功能可以实现但是别这样写,我只是来解释函数....否则亲们就按照上面的方法刷固件把
第一个参数只有"data",,说明是接收串口的数据
第二个参数写0就是说串口接收的数据存在了Revdata里面,,,说一下哈Revdata是一个字符串变量,,接着看后面也会提及...写小于255的数就代表,接收到这个数目才执行uart.write(0,Revdata) ,,,,如果写别的"X" ,就代表接收到字符X后就执行uart.write(0,Revdata)
第三个参数是函数,串口接收到数据就会调用这个函数,并把接收到的数据存到Revdata里面然后调用uart.write(0,Revdata) 把数据再传回串口,,,参数0是说用串口0,,当然咱们使用的就是串口0,,,.其实还有串口1,,不过呢串口1只有TX引脚引了出来,还有串口2,不过呢
即使uart.write(2,Revdata) 写上串口2,信息还会默认发给串口0
第四个参数写0吧
第一种方案这样写
gpio.mode(4,gpio.OUTPUT) gpio.write(4,1)