<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ESA2GJK1DH1K_B/" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
<iframe frameborder="0" height="1500" name="ifd" scrolling="auto" src="https://mnifdv.cn/resource/cnblogs/ESA2GJK1DH1K_B/" width="100%"></iframe>
说明
1.这节远程升级以STM32F407VET6+ESP8266为例.
一会再补充上使用STM32F407VET6+Air202/Air302的程序.
2.整个的升级流程和前面的文章一样
先测试下升级
先使用我提供的程序下载地址测试.
1.打开这节的程序
2.连接引脚说明
使用串口1作为了日志打印,串口2连接模组.
(单片机)PA2 -- RX(模组)
(单片机)PA3 -- TX(模组)
(单片机)PA8 -- RST(模组复位引脚)
另外:
PA6作为了指示灯
PE4作为了按键
指示灯和按键不是必须的!
可以按照自己的板子在各个头文件里面修改引脚定义
3.下载BootLoader到自己的开发板
4.打开用户程序,修改成连接自己的路由器名称和密码
5.接着再下载用户程序(选择只擦除程序使用的部分)
观察串口1打印的日志
1.烧录完BootLoader然后再烧录用户程序打印如下:
2.在用户程序中控制模组连接路哟器
3.获取服务器固件信息,如果有新版本,重启
4.更新完成
应用到自己的项目
1.在自己的Web服务器上建一个目录,作为存放固件文件
我的地址为: 网站根目录/ota/hardware/STM32F4xxESP8266BK
2.修改BootLoader的IAP.c文件里面的产品型号和默认固件的下载地址
3.打开用户程序的IAP.c文件,修改里面的产品型号和记录固件信息文件的地址
4.分别编译下BootLoader程序和用户程序
先下载BootLoader程序到板子
再下载用户程序到板子
5.把用户程序的版本改为其它版本,然后编译下用户程序
6.编程以后会在其工程目录生成Bin文件夹,并在里面生成user.bin文件
7.打开OTA Tools上位机软件
提示:该软件是修改bin文件加入校验(使得升级稳定可靠)
8.按照红框选择配置
9.选择用户程序生成的 bin文件
10.点击 生成固件
11.将在user.bin目录生成user_crc.bin文件
user_crc.bin文件只是在user.bin的基础上增加了CRC校验位
12.把生成的user_crc.bin文件拷贝到服务器
12.打开info.txt文件
13.修改版本号(和用户程序里面设置的一样)
14.修改固件程序大小(OTA Tools提示信息里面有这个大小)
15.修改固件程序下载地址(和服务器路径保持一致)
16.最后的提示信息不需要更改,当前用不到
17.把info.txt文件也拷贝到服务器
18.然后观察日志,查看升级情况
正常情况下会和一开始的日志流程一样完成升级.
程序详细说明
1.flash分配
2.调整BootLoader ,用户程序, 备份用户程序的flash分配扇区
注意:BootLoader程序和用户程序要保持一致.
3.调整存储其它数据使用的扇区
注意:BootLoader程序和用户程序要保持一致.
4.