http://www.javashuo.com/article/p-wulroxkd-bc.htmlhtml
视频教程程序员
https://www.bilibili.com/video/av55149096服务器
这一版的单片机程序方案要比上一版的单片机程序方案要稳定的多.......不少东西蛮复杂的其实也蛮简单,蛮简单的东西有时候也蛮复杂数据结构
我之因此出好几版实现更新的程序是由于我想的是让你们真正的学会,和别人的教程相比,我更注重本身的教程是否是能让你们真正的明白!真正的应用起来ide
我不但愿你只会用,请不要本身骗本身,由于若是只是这样,之后会害了你,....记住,若是每次都是似懂非懂的去学习,你感受如今很轻松,之后你毫不会轻松.函数
烂程序员关心的是代码。好程序员关心的是数据结构和它们之间的关系.学习
我身边多的是例子:每学一个东西都力求深刻的学的人和每次都只是处于会用的基础上的人,一开始你看不出来差异,可是一旦工做2-3年,不管薪酬,对问题思考的角度,解决问题的能力,仍是发展空间100%不同了.....一个天上一个地下.....你本身的态度绝对会影响你的将来生活.都是一天24小时,请尊重本身和别人的时间spa
因为如今问问题的太多太多.....通常的问题我再也不回答,由于你本身百度就能够解决,你要是懒,我比你更懒....3d
我只是一个为你拨开重重迷雾的人,路仍是须要本身走.code
真正的人才都是自学出来的,不要认为自学了就是人才了.不少人都想一口吃个胖子....
我感受我本身算是我的才,但不是真正的人才.自信中永远会带着谦虚,由于见识到了太多的...天外天,人外人.
这一节的程序方案是我感受最好的了,程序修改了好多天,由于我老是力求能把最好的带给你们.....
为了让你们好学习,这节的程序彻底是单片机本身请求升级,没有其它东西作控制.
请先自行补充基础内容
http://www.javashuo.com/article/p-dlcvocfk-gc.html
https://www.cnblogs.com/yangfengwu/category/1383497.html 1-3节
WIFI模块收到链接服务器指令就去链接TCP,而后返回链接状态,,链接上之后就透传,...就这样
我只是用LUA写的,你们AT指令也能实现链接TCP把,我就是为下一节的AT指令版本实现升级作铺垫
看一下IAP程序的流程图
单片机每次复位主动询问服务器版本,若是版本不一致就下载 控制WIFI链接TCP服务器 "{\"datemcu\":\"updata\",\"cmd\":\"ConnectTCP\",\"ip\":\"47.92.31.46\",\"port\":\"80\"}" {"datemcu":"updata","cmd":"ConnectTCP","ip":"47.92.31.46","port":"80"} WIFI模块返回 "{\"datemcu\":\"updata\",\"state\":\"ConnectOK\"}" "{\"datemcu\":\"updata\",\"state\":\"ConnectNO\"}" WIFI模块连接上之后进入透传模式 控制WIFI询问程序版本 "GET /hardware/STM32RISC/updatainfo.txt HTTP/1.1\r\nHost: 47.92.31.46\r\n\r\n" GET /hardware/STM32RISC/updatainfo.txt HTTP/1.1\r\nHost: 47.92.31.46\r\n\r\n 单片机解析数据,获取程序版本 若是程序版本不相同 控制WIFI链接TCP服务器(由于http默认访问一次就断开) "{\"cmd\":\"Connect\",\"ip\":\"47.92.31.46\",\"port\":\"80\"}" 控制WIFI下载程序(准备好接受用户程序) "GET /hardware/STM32RISC/bin1.bin HTTP/1.1\r\nHost: 47.92.31.46\r\n\r\n" 或者 "GET /hardware/STM32RISC/bin2.bin HTTP/1.1\r\nHost: 47.92.31.46\r\n\r\n" 更新完成,切换,重启
用户程序:若是用户程序有错误,那么就执行不到下面的函数,直接会复位重启了
把全部可能出现的状况考虑一下,而后看看是否是均可以解决
下载Wi-Fi程序
连接路由器什么的参考基础篇自行解决,配网方式仍是那样
下载单片机程序
更改了一次教程,该程序位置
服务器上:
再复位一下
去云端修改下版本
其实链接HTTP获取数据的时候会发现,HTTP分段过来的数据之间的间隔时间有长有短
为了尽可能别让更新的时候出现乱子