stm32程序太大远程升级怎么解决_STM32网络远程升级固件的IAP程序实现与解析-附亲测稳定能用的程序-OpenEdv-开源电子网...

本文介绍了如何实现STM32F407芯片的网络固件远程升级,通过IAP程序解析,用户在浏览器上输入设备IP地址、用户名和密码后选择bin文件进行升级。程序稳定,15秒内完成升级,适用于STM32系列。内容包括网络升级流程、HTML代码编写、POST指令解析和文件上传处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本帖最后由 lzq12 于 2017-6-27 15:22 编辑

本文主要对STM32网络升级固件的IAP程序进行解析,也就是在STM32联网的情况下在浏览器上输入指定的IP地址(目前设置为192.168.1.101),然后在浏览器上输入用户名和密码,登陆后可以选择需要升级的bin文件进行固件升级。以下是目前该程序应用的硬件与软件环境:

1.硬件:STM32F407(理论上STM32系列都可以),网卡芯片LAN8720,其他部分参考正点原子的STM32F407探索者开发板。

2.软件:Keil5 ,LWIP1.4.1 主要是基于正点原子STM32F407探索者的第六十章网络通信实验程序与第五十五章串口IAP实验程序(这部分只用到了跳转和烧写FLASH程序)。

说明:该程序与我之前编写的《STM32F407通过SD卡进行程序升级(把bin文件烧写到FLASH的方式)》程序整合起来就可以实现SD卡+网络升级,即可以通过SD卡进行程序升级,如果升级失败自动跳转 去进行网络升级,也可以直接进行网络升级。目前该程序可以应用在项目上,网络升级和SD卡升级均稳定无差错。该程序的网络升级大概需要15秒钟(从点击到程序升级成功)。STM32F407通过SD卡进行程序升级(把bin文件烧写到FLASH的方式)》本论坛的链接:http://www.openedv.com/forum.php?mod=viewthread&tid=90835以下先对网络升级部分的操作步骤进行解说,后面再贴上各个C文件的程序。

一、网络升级的主要实现过程

按住K1键开机,自动进入网络升级模式(进入网络升级模式的方法不一定是要按下K1,可以自己编写条件,比如SD卡升级失败后就进入网络升级模式),然后在浏览器上输入192.168.1.101登陆页面

登陆界面.jpg (7.73 KB, 下载次数: 22)

2017-6-27 14:28 上传

输入用户名和密码(用户名和密码都是admin)之后,点击进入文件升级界面,选择升级的bin文件然后点击进行升级

选择升级文件界面.jpg (6.32 KB, 下载次数: 30)

2017-6-27 14:29 上传

更新成功.jpg (19.53 KB, 下载次数: 25)

2017-6-27 14:29 上传

本程序已经通过测试,网络升级不会有错乱,程序中会对升级的bin文件的文件名与文件的合法性进行校验,其中网络IP、用户名、密码、文件名均可在程序里自行更改。

二、网页界面的HTML代码编写

网页界面不是用他人那种把网页界面转成数组然后存放在程序里调用的方式,用的是直接编写HTML代码的方式,简单直观而且可以任意修改,登陆界面和文件升级界面都可以自己修改,可以看函数http_write_loginweb()和http_write_updatebinweb(),效果如上图的登陆界面和文件升级界面。

//用户和密码登陆WEB界面的HTML内容代码填充

voidhttp_write_loginweb(char *pbuff, int *ppos,int error)

{

*ppos += sprintf(pbuff + *ppos,"");

http_write_script(pbuff,ppos,error);

*ppos += sprintf(pbuff + *ppos,"

\r\n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值