STM32 DFU升级APP程序

2019-07-21 00:13发布

1、大家是否觉得STM32用串口下载大点的程序代码很慢呢?
2、晚上抽时间玩了下STM32的DFU升级APP功能,的确好玩点,呵呵。。。具体用到的库和例程参考官网
http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/PF258157
3、DFU度娘了一下,是一个什么标准来的,不是很懂,大伙们就自己查看相关的资料哈
4、废话少说,先上两张效果图(我简单的用个RTC的实验做的,至于其他的留给大家了)
图1:战舰开发板进入DFU模式时显示界面,好简单,复杂点的自己折腾去,嘿


图2:这个是DFU升级完APP程序后运行的效果(上面显示的时间日期不准的哈,不要见怪

大家看到了,很简单的界面,对,简洁得体,呵呵
5、因为记录这个笔记的时候太长了我就不贴出来了,大家直接附件查看即可。里面图文并茂的,自个儿认为已经很详细了。。。最后添加工程的文件效果

图解:A、红 {MOD}框框的就是用到的USB库了,非必要情况下不用修改
      B、蓝 {MOD}框框的就是这次用到的底层连接相关的实现代码

6、我使用的是原子的战舰STM32开发板,至于Mini STM32开发板,因为我手上没有,所以这个就留给大家了
7、有一点要说明的就是,在Bootloader程序中的“dfu_mal.c”这个代码中有这么一个函数uint16_t MAL_GetStatus(uint32_t SectorAddress , uint8_t Cmd, uint8_t *buffer)这个函数至于干啥用的,大家看名字就知道了(不知道的面壁思过去,嘿)。如果你升级的APP程序比较大的时候建议还是将它完善,至于为什么,可以参考《STM32F10xxx闪存编程参考手册.pdf》这个文档。貌像这个函数直接返回MAL_OK也是可以的喔
8、昨晚也看了下原子战舰光盘的例程,发现有个串口IAP实验,哈,开发指南也说的很明白了,在此对原子哥再次膜拜一下下,强大。。。
9、电脑端的软件使用的是ST官网的一个软件,这个软件的名字叫“DfuSe_Demo_V3.0_Setup.exe”我在官网上面没有搜索到,是在百度上面找到的,本贴在附件上也倾情奉上了。至于使用请参考百度上的方法或者附件中的《STM32 DFU升级APP程序移植笔记.pdf》中的第七步、APP程序的下载操作


制作:Sam Chan
日期:2014/03/15凌晨

注:
1、“战舰STM32_DFU_Bootloader.zip”压缩包里面包括了Bootloader程序代码和APP代码
2、发现这个DFU下载速度还是挺快的,大伙们觉得串口和JTAG都慢的话可以试下这个,呵呵
3、附上Bootloader和APP程序中都用到相同中断时的冲突问题的解决方法,详情请看附件或者帖子
http://www.openedv.com/posts/list/28635.htm





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
52条回答
八度空间
1楼-- · 2019-07-24 05:45
回复【22楼】pizhihui1993:
---------------------------------
是啊
sundali66
2楼-- · 2019-07-24 08:51
 精彩回答 2  元偷偷看……
八度空间
3楼-- · 2019-07-24 11:29
回复【24楼】sundali66:
---------------------------------
你怎么操作的?
sundali66
4楼-- · 2019-07-24 16:54
回复【25楼】Badu_Space:
---------------------------------
我对USB的DFU不懂,计划先看看你的程序,利用JATG下载程序后就按PDF的第七步操作。到最后upgrade时就出行了“bad state machine in firmware”了。
八度空间
5楼-- · 2019-07-24 18:18
 精彩回答 2  元偷偷看……
sundali66
6楼-- · 2019-07-24 20:31
回复【27楼】Badu_Space:
---------------------------------
下载软件用的Dfu_Demo_v3.0
USB驱动是电脑自己识别的。V3.0.4版本的。
换了几个Dfu_Demo_v3.0,试试都比行。是不是驱动版本高了?我在网上也没有找到USB驱动。你那边有吗,楼主?
请赐教啊。

一周热门 更多>