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条回答
鹏鹏0830
1楼-- · 2019-07-27 17:37
回复【46楼】Badu_Space:
---------------------------------
就是用的你的代码,现在成功了。是我的驱动没装好。现在有2个问题是:
1.我用usb下了几个程序,其中有一个程序运行一会儿会死机,这个程序直接用jtag下载,运行是不会死机的,死机应该不是程序的问题。其他几个程序没问题,是不是因为这个程序比较大。
2.经常下不进去,出现39楼的错误情况,一般连着点好几次下载就可以了,运气好一次就成功。是不是官方的下载软件做的不稳定?
八度空间
2楼-- · 2019-07-27 20:22
 精彩回答 2  元偷偷看……
八度空间
3楼-- · 2019-07-27 22:32
回复【40楼】microbai:
---------------------------------
出现你这个现象我试过一次,就是下载过程中碰了一下USB线造成的,不知道你的是不是这个原因,另外,我用的是WIN7的系统,至于WIN8行不行就没试过
microbai
4楼-- · 2019-07-28 02:18
回复【49楼】Badu_Space:
---------------------------------
测试了是win8的问题,win7无任何问题

一周热门 更多>