实现功能概要 定时使用http访问云端的程序版本,如果版本不一致,然后通过http下载最新的升级文件,实现升级. 测试准备工作(默认访问我的服务器,改为自己的服务器,请看后面说明) 一,下载BootLoader程序(请自行下载) 二,调整波动开关位置,STM32和Wi-Fi 串口 通信 三,短接STM32的PB2和Wi-Fi模块的RST引脚(内部程序使用该引脚硬件复位Wi-Fi) 四.两个串口模块的RX,分别接到单片机的PA9和PA10. 4.1注:此为监控STM32和Wi-Fi之间的数据,看到…
前言 学习此代码所需: 实现功能概要 定时使用http访问云端的程序版本,如果版本不一致,然后通过http下载最新的升级文件,实现升级. 测试准备工作(默认访问我的服务器,改为自己的服务器,请看后面说明) 一,下载BootLoader程序(请自行下载) 二,调整波动开关位置,STM32和Wi-Fi 串口 通信 三,短接STM32的PB2和Wi-Fi模块的RST引脚(内部程序使用该引脚硬件复位Wi-Fi) 四.两个串口模块的RX,分别接到单片机的PA9和PA10. 4.1注:此为监控STM32和W…
实现功能概要 单片机定时使用http访问云端的程序版本,如果版本不一致, 然后通过http下载最新的升级文件,实现远程升级STM32程序. 兼容Air202 ,SIM800 测试准备工作(默认访问我的服务器,改为自己的服务器,请看后面说明) 一,下载BootLoader程序(请自行下载) 二,调整波动开关位置,STM32和GPRS 串口1 通信 二,别忘了插手机卡,还有安装上天线 三.准备两个串口模块,两个串口模块的RX,分别接到单片机的PA9和PA10. 4.1注:此为监控STM32和GPRS…
实现功能概要 单片机定时使用http访问云端的程序版本, 如果版本不一致,然后通过http下载最新的升级文件,实现远程升级STM32. 兼容Air202,SIM800 测试准备工作(默认访问我的服务器,改为自己的服务器,请看后面说明) 一,下载BootLoader程序(请自行下载) 二,调整波动开关位置,STM32和GPRS 串口1 通信 三,别忘了插手机卡,还有安装上天线 四.准备两个串口模块,两个串口模块的RX,分别接到单片机的PA9和PA10. 4.1注:此为监控STM32和GPRS之间的…
实现功能概要 前面的版本都是,定时访问云端的程序版本,如果版本不一致,然后下载最新的升级文件,实现升级. 这一节,在用户程序里面加入MQTT通信,执行用户程序的时候,通过接收MQTT的升级命令实现升级 注意:BootLoader程序还是用以前的程序. 一开始设计这个升级篇的时候,我就规定好了大的框架 BootLoader只是负责升级,其它一概不管 用户程序只是写入升级标志,然后重启,所有的升级步骤全部交给BootLoader! 协议: 注:所有的实现MQTT的软件,统称为MQTT上位机 一,MQ…
前言 这一节和上一节是搭配的 给大家鱼,也必须给鱼竿! 我期望自己封装的代码,无论过了多少年都有应用的价值! 这节说明一下制作APP用户程序的过程 咱是用MQTT通信控制模块实现升级,所以首先自己的程序先实现MQTT哈. 协议 注:所有的实现MQTT的软件,统称为MQTT上位机 一,MQTT上位机通过MQTT发送获取设备信息指令 {"data":"updata","cmd":"DeviceInfo"} //设备接收到回复 {&…
前言 上节实现远程更新是更新的STM32F103C8T6的单片机 GPRS网络(Air202/SIM800)升级STM32: 测试STM32远程乒乓升级,基于(GPRS模块AT指令TCP透传方式),定时访问升级 这节将告诉大家如何移植到其它型号的单片机. 这一节以 STM32F103RET6 (512KB Flash 64KB RAM) 为例 我使用我的这块板子 大家测试的时候可以按照下面的方式接到自己的GPRS模块(Air202 / SIM800) 单片机串口1 接到GPRS的AT指令配置串口…
实现功能概要 这节和上一节的功能一样(只不过上节是利用Wi-Fi模块,这节是利用GPRS模块) 用户程序里面加入MQTT通信,执行用户程序的时候, 通过接收MQTT的升级命令实现升级. 凡是可以实现MQTT通信的上位机皆可控制单片机升级. 通信控制协议和上一节一样 注:所有的实现MQTT的软件,统称为MQTT上位机 一,MQTT上位机通过MQTT发送获取设备信息指令 {"data":"updata","cmd":"DeviceInfo&…
前言 这节演示下,上两节写的利用MQTT来控制STM32控制的程序 测试准备工作(默认访问我的服务器,改为自己的服务器,请看后面说明) 一,下载BootLoader程序(请自行下载) 首先BootLoader默认是先尝试加载第一份用户程序 后面咱分为两种情况: 人为下载进去第一份APP用户程序和不下载进去第一份APP用户程序 第一种:人为下载进去第一份APP用户程序 一,注:咱的目的是把相应的程序文件烧录到相应的位置 为避免清除BootLoader程序,下载的时候按照下面的选择 这样在不清楚Bo…
前言 1.BootLoader程序,升级简要流程图 2.其实主要的就是把程序文件写入环形队列,然后环形队列取出来数据写入Flash 3.用户程序,简要流程图 下面的读一下,有个印象就可以: 说白了就是BootLoader里面通过http远程下载完程序以后, 设置更新状态是 0x01  然后重启 重启以后还是会先执行BootLoader,然后BootLoader判断更新状态是 0x01 那么就设置更新状态是 0xFF 然后就会执行 用户程序,用户程序判断更新状态是 0xFF 就切换下版本号.设置升…