实现功能概要

  单片机定时使用http访问云端的程序版本,如果版本不一致,

  然后通过http下载最新的升级文件,实现远程升级STM32程序.

  兼容Air202 ,SIM800

测试准备工作(默认访问我的服务器,改为自己的服务器,请看后面说明)

一,下载BootLoader程序(请自行下载)

  

二,调整波动开关位置,STM32和GPRS 串口1 通信

  

  

二,别忘了插手机卡,还有安装上天线

  

三.准备两个串口模块,两个串口模块的RX,分别接到单片机的PA9和PA10.

  4.1注:此为监控STM32和GPRS之间的数据,看到更新的过程.

    

  4.2 示意图

    

    

开始测试

一.当前只下载了BootLoader程序,在BootLoader程序里面实现更新,需要按照下面操作

  长按PB5大约4S,等待指示灯快闪,松开PB5,指示灯闪耀3S以后,程序写入更新标志位,然后重启

    

二.监控的数据

  

  

三.实际应用请使用一个引脚控制模块重启

  3.1 请在每个程序文件的此处修改(注,本人的板子现在未引出复位引脚,下一批板子将跟进)

    

  

  3.2 如果没有复位可能出现一直发送  AT+CIPSHUT ,模块要等到好久才有反应

  现在测试可人为进行复位!

    

四.运行用户程序,每隔30S访问一次云端程序版本

  

修改为连接自己的服务器

一,修改BootLoader,和两份用户程序连接的Web服务器的IP地址,端口号信息

  

  

  

二,Http访问程序文件的路径请自行根据自己的修改,我按照我自己的说明

  2.1 根据单片机程序访问的路径,在Web服务器建立文件夹

    

    

  

  2.2 打开上位机软件,计算两份用户程序的SUM值

    

    

    

  2.3 计算第一份用户程序的校验值,并替换SumBin1的字段值

    

    

  2.4 计算第二份用户程序的校验值,并替换SumBin2的字段值

    

    

  2.2 拷贝记录设备版本的updatainfo.txt文件,和用户程序1文件(Progect.bin),用户程序2文件(Progect2.bin)到服务器

    

    

    

  最终效果

    

修改完了,然后按照文章一开始的测试

  升级成功以后用户程序里面在定时询问是不是有新版本

  咱刚升级进去的肯定是新版本.

  咱到云端修改下版本

四,修改云端版本

  

  

五,用户程序检测到新版本,写入更新标志,重启,BootLoader更新另一份程序,重启,运行新程序

  

其它

一,可先下载第一份程序到单片机,让单片机默认运行一份程序

  1.1 操作步骤是先下载BootLoader程序(下载进去就可以,不需要任何配置)

  1.2 下载第一份用户程序(程序默认加载第一份用户程序),请按照下面配置下载

    

此时单片机启动以后便会运行第一份用户程序.

  

    

最新文章

  1. MySQL - 常用命令及常用查询SQL
  2. html5 formData上传 针对app端
  3. C#反射实例化类并调用类的方法
  4. JS~delegate与live
  5. centos安装python gcc sqlite
  6. https请求时出错:Could not establish trust relationship for the SSL/TLS secure channel
  7. STM32位带操作总结---浅显易懂
  8. Restful、Jersey和JAX-RS
  9. 深入理解Python的字符编码
  10. docker3
  11. BZOJ2829信用卡凸包——凸包
  12. PID 通俗解释
  13. Unity中UGUI之Canvas属性解读版本二
  14. JAVA 图形界面开发基础详解
  15. JavaScript语言精粹之对象
  16. FD 设置字体大小
  17. 【Nodejs】“快算24”扑克牌游戏算法 1.02
  18. MongoDB创建表步骤,Mongo常用的数据库操作命令,查询,添加,更新,删除_MongoDB 性能监测
  19. boost.sha1
  20. BZOJ 1941: [Sdoi2010]Hide and Seek(k-d Tree)

热门文章

  1. python 爬取媒体文件(无防火墙)
  2. 用java编写爬虫爬取电影
  3. 024 如何让html引用公共的头部和尾部(多个html文件公用一个header.html和footer.html)
  4. MySQL 中获取用户表、用户视图、用户表中列信息
  5. fancybit个人简介
  6. HTML模版大全网
  7. 后台数据转换成Excel,前台下载
  8. python课程单元三编程题讲解(上)
  9. centOs6和Centos7开放/关闭端口区别
  10. PHP之面向对象(下)