定时使用http访问云端的程序版本,如果版本不一致,然后通过http下载最新的升级文件,实现升级.
一,下载BootLoader程序(请自行下载)
二,调整波动开关位置,STM32和Wi-Fi 串口 通信
三,短接STM32的PB2和Wi-Fi模块的RST引脚(内部程序使用该引脚硬件复位Wi-Fi)
四.两个串口模块的RX,分别接到单片机的PA9和PA10.
4.1注:此为监控STM32和Wi-Fi之间的数据,看到更新的过程.
4.2 示意图
一,打开可以配网的APP,给Wi-Fi配网
请参考基础篇: https://cloud.tencent.com/developer/article/1529818
二,配网成功后,默认重启以后更新程序文件,更新完成以后自动加载更新的用户程序
下面说明一下监控的数据
2.1 单片机发送数据,(获取云端程序文件的版本信息)
2.2 其实就是获取的这个文件
2.3 获取程序文件
2.4 如果升级没有问题重启以后运行刚升级进去的用户程序
一,修改BootLoader,和两份用户程序连接的Web服务器的IP地址,端口号信息
二,Http访问程序文件的路径请自行根据自己的修改,我按照我自己的说明
2.1 根据单片机程序访问的路径,在Web服务器建立文件夹
2.2 打开上位机软件,计算两份用户程序的SUM值
2.3 计算第一份用户程序的校验值,并替换SumBin1的字段值
2.4 计算第二份用户程序的校验值,并替换SumBin2的字段值
2.5 拷贝记录设备版本的updatainfo.txt文件,和用户程序1文件(Progect.bin),用户程序2文件(Progect2.bin)到服务器
2.5 最终效果
升级成功以后用户程序里面在定时询问是不是有新版本
咱刚升级进去的肯定是新版本.
咱到云端修改下版本
一,修改云端版本
二,用户程序检测到新版本,写入更新标志,重启,
BootLoader获取更新另一份程序,重启,运行新程序
一,可先下载第一份程序到单片机,让单片机默认运行一份程序
1.1 操作步骤是先下载BootLoader程序(下载进去就可以,不需要任何配置)
1.2 下载第一份用户程序(程序默认加载第一份用户程序),请按照下面配置下载
此时单片机启动以后便会运行第一份用户程序.