专栏首页知识分享STM32远程乒乓升级,基于GPRS模块AT指令TCP透传方式,定时访问升级(含有数据校验)

STM32远程乒乓升级,基于GPRS模块AT指令TCP透传方式,定时访问升级(含有数据校验)

实现功能概要

  单片机定时使用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 下载第一份用户程序(程序默认加载第一份用户程序),请按照下面配置下载

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • STM32远程乒乓升级,基于WIFI模块AT指令TCP透传方式,定时访问升级(含数据校验)

      定时使用http访问云端的程序版本,如果版本不一致,然后通过http下载最新的升级文件,实现升级.

    杨奉武
  • 移植远程更新程序到STM32F103RET6型号的单片机,基于(GPRS模块AT指令TCP透传方式)

    这一节以 STM32F103RET6 (512KB Flash 64KB RAM) 为例 

    杨奉武
  • WIFI网络(ESP8266)升级STM32: STM32使用http下载程序文件,乒乓升级方式,支持程序回滚 (WIFI模块AT,TCP透传方式)

        如果有更新标志位,STM32控制WIFI模块以TCP方式连接Web服务器,然后发送Get 协议获取程序文件,写入Flash后,重启!

    杨奉武
  • 【程序源代码】垃圾识别小程序(源码)

    前端:微信小程序采用 uni-app 开发框架,uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Andro...

    程序源代码
  • 树莓派重设密码

    参考博文:http://shumeipai.nxez.com/2017/02/17/how-to-reset-a-forgotten-raspberry-pi-...

    墨文
  • Android开发笔记(三十六)展示类控件

    View是单个视图,所有的控件类都是从它派生出来;而ViewGroup是个视图组织,所有的布局视图类都是从它派生出来。由于View和ViewGroup是基类...

    用户4464237
  • [原创程序]随机语录开源

      这个程序是很久以前写工具站时候写的,后面又写了新版本的语录系统,鉴于有人需要,开源旧版本的随机语录。

    雨落凋殇
  • python接口自动化(二十四)--unittest断言——中(详解)

      上一篇通过简单的案例给小伙伴们介绍了一下unittest断言,这篇我们将通过结合和围绕实际的工作来进行unittest的断言。这里以获取城市天气预报的接口为...

    北京-宏哥
  • 【自然框架】QuickPager分页控件,新增一种分页方式——伪URL分页(Postback版)

    适用场景   先说一下伪URL分页的适用场景。在网站的网页里实现查询功能,如果查询条件比较少的话,还比较好办,把查询条件放到URL里面传递即可。但是如果查...

    用户1174620
  • 你我皆凡人,换个视角看小程序

    这算是成功吗?你我皆凡人,商业规模上的小程序是否成功的分析,虎哥拿不出来,分析的也不够准确。但我们倘若只从外包这块来看,大量小程序的开发需求从经济学的角度来看,...

    微宝阁

扫码关注云+社区

领取腾讯云代金券