你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 5363|回复: 26

[STM32F769-DISC] 【F769IDISCOVERY评测】用WIFI给你的设备远程升级

  [复制链接]

33

主题

1243

回帖

0

蝴蝶豆

论坛元老

最后登录
2019-3-9
发表于 2016-12-14 09:47:08 | 显示全部楼层 |阅读模式

    本人前面的帖子中多次提到,F769IDISC(STM32官网)这块开发板不仅带有线网口,还配带无线WIFI模块扩展口。物联网时代,啥东西不和网络车上关系好像都不好意思拿出来说,开发板有这么高端的功能,怎么可能不体验一下呢。于是本人”不惜血本花费重金“10个大洋,买了个WIFI模块回来,准备体验一下高大上开发板功能。
    开发板装上WIFI后大概就是这个样子的
image30.png
image31.png

嵌入式设备千千万万,给系统升级是非常常见然而又非常麻烦的事情,相信不少人都被坑过,然而,现在有个非常好的解决方法:远程无线升级,就是本文介绍的例子,通过使用wifi模块联网,从网络下载固件进行IAP升级,本例在\STM32Cube_FW_F7_V1.5.1\Projects\STM32F769I-Discovery\Applications\WiFi\Esp8266_IAP_Client文件夹中,注意一定要是1.5.1才有
需要用到的工具:
硬件:STM32F769IDISCOVERY开发板,ESP8266-01或ESP8266-01S WIFI扩展模块
软件: IAR或其他集成编译器,HTTP WEB服务器
web server 例程文档里推荐使用Wamp server,本人之前安装过tomcat,懒得重新安装一个,于是就是用tomcat,,然后这里有个坑折腾了我一个多小时
下面介绍如何利用WIFI远程升级
1. 首先将WIFI模块安装到F769I开发板扩展口上,如文章开头的图
2. 打开Esp8266_IAP_Client中的工程
3. 打开config.h文件,修改图中所示的4个宏定义,分别是局域网WIFI名称,密码,主机IP地址和端口,web server一般都是比较常见的8080端口
image32.png
4. 启动web服务器,即tomcat,打开浏览器输入localhost:8080或者 192.168.1.149:8080(本机ip),如果看到tomcat主页,说明运行成功
image33.png
5. 将工程中的binary/hello.bin复制到Tomcat的ROOT目录中,这是我们将要下载升级的固件
image34.png
在浏览器输入 192.168.1.149:8080/hello.bin 并回车,如果出现文件下载页面则webserver准备完成

按理说,到这里已经完成配置,编译下载就能正常运行了,楼主满怀期待的编译并下载好程序,复位运行,看着屏幕上一点点的变化:
image35.png
WIFI初始化成功
链接路由器成功,获得IP地址
链接服务器成功
开始下载文件
一切看起来好像那么美好
然而现实总是不会那么一帆风顺
几秒钟之后。。
image36.png
一瓢冷水泼再头上,,虽然南国的“冬天”这几天很暖和,但还是拔凉拔凉的,,但是,我也是不会那么容易放弃的
一头扎到代码中去找上面那个错误,,居然有好几个地方都是同一句话,,,下STM32库的同志啊,能不能走点心啊,,你哪怕多谢一个编号也好辨认一点啊,,没办法啦,自己来,给每个地方加不同的输出信息,再慢慢调试,最后终于找到错误来源
image37.png
罪魁祸首就是它了,什么意思呢?看注释是在检查从网络接收的数据是不是正确的,这个函数是在查找字符串子串,看前面字符串中是否包含后面那个字符串
image38.png
image39.png
这里说如果接收成功,将会收到 200 OK,
image40.png
在HTTP协议中,200 OK被定义为请求成功,所以在接收数据中如果检查到200 OK则说明数据接收正确。
然而运行的时候这里的检查每通过?难道是服务器数据发送没成功?又折腾快一个小时过去,试了各种方法,最后发现是Tomcat的坑,,,由于使用了不同的WEB服务器,Tomcat server在请求成功的时候
只会返回 200,而不会 返回 200 OK,
数据中当然就永远也找不到 200 OK 子字符串了。

简直是跳坑里了都不知道怎么进去的啊。不过好在找到原因了,简单修改一下代码,去掉多余的“ OK”
image41.png
此时再次编译下载运行,
image42.png
功夫不负有心人,总算是看到下载,编程成功的界面了,按下复位键,重新运行一下,接可以看到Hello ESP8266的界面了
image43.png
中间的色块有好几种颜色在变化。
image44.png


如果需要再次进入刚刚的升级程序的界面,只需要按住蓝色用户按键不放,然后按一下黑色复位键即可。
之后我们只需要将 hello.bin换成我们自己写好的固件程序,即可实现固件远程升级,想想也是一个很方便的功能,如果成本允许,倒也是非常不错的选择。

朋友们有兴趣的可以试试,感觉还是蛮有趣的




评分

参与人数 1ST金币 +30 收起 理由
zero99 + 30

查看全部评分

回复

使用道具 举报

60

主题

2051

回帖

31

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2016-12-14 10:02:41 | 显示全部楼层
高端,风神出手就是不一样!
回复 支持 反对

使用道具 举报

3

主题

1377

回帖

0

蝴蝶豆

论坛元老

最后登录
2020-12-9
发表于 2016-12-14 10:17:22 | 显示全部楼层
谢谢分享,这个确实很实用。
回复 支持 反对

使用道具 举报

10

主题

693

回帖

0

蝴蝶豆

金牌会员

最后登录
2018-6-15
发表于 2016-12-14 10:20:29 | 显示全部楼层
谢谢分享               
回复 支持 反对

使用道具 举报

74

主题

1368

回帖

194

蝴蝶豆

版主

最后登录
2020-5-12
发表于 2016-12-14 10:23:23 | 显示全部楼层
不错,值得学习~~~
回复 支持 反对

使用道具 举报

10

主题

1651

回帖

0

蝴蝶豆

论坛元老

最后登录
2020-2-15
发表于 2016-12-14 10:35:00 | 显示全部楼层
挺高端的。
回复 支持 反对

使用道具 举报

6

主题

1026

回帖

7

蝴蝶豆

金牌会员

最后登录
2020-11-25
发表于 2016-12-14 10:43:15 | 显示全部楼层
谢谢分享,非常好的经验
回复 支持 反对

使用道具 举报

0

主题

1

回帖

0

蝴蝶豆

中级会员

最后登录
2018-3-2
发表于 2016-12-14 11:00:54 | 显示全部楼层
厉害      
回复 支持 反对

使用道具 举报

20

主题

1110

回帖

125

蝴蝶豆

论坛元老

最后登录
2019-5-4
发表于 2016-12-14 11:17:59 | 显示全部楼层
感谢楼主分享
回复 支持 反对

使用道具 举报

1182

主题

3785

回帖

1

蝴蝶豆

论坛元老

最后登录
2020-3-17
发表于 2016-12-14 11:23:48 | 显示全部楼层
高端。。
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版