在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
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()引脚是低电平返回0,外部引脚是高电平返回1
如果设置的输出高电平,但是如果拉低了引脚,也是返回0,,,,和控制状态没有关系,只与
当前引脚的实际高低电平有关系
现在看定时器函数
第一个参数 一共可以同时使用7个定时器,,id号呢是0-6 第二个参数是延时多少ms执行最后面的函数 第三个参数是设置是只执行一次,,还是调用启动函数时执行一下,还是一直间隔第二个参数的时间执行最后面的函数 就让它每隔1s打印一下串口打印111111
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...只是感觉没有试过
更方便点呢
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) tmr.alarm(1, 2000, 0, function() uart.on("data", 0,function(Revdata) uart.write(0,Revdata) end, 0) end)
1.uart.on("data", 0,function(Revdata) 2. 3. uart.write(0,Revdata) 4. 5. end, 0)
只要一执行这个函数,那么以后串口接收到数据就会执行
uart.write(0,Revdata)
现在用串口助手测试一下
现在我假如修改了程序想重新写入芯片
全部评论
专题导读
热门推荐
热门话题
阅读排行榜
|
请发表评论