转载一个工具:免驱动的DFU工具HidDfu目前支持STM32F10x,(经过测试确实可用)

前面我也分享过F4系列的DFu烧写的办法和操作步骤,
亲们有木有感觉好麻烦?
1.要先安装dfu的驱动程序
2.首先移植程序,烧录进芯片,再次编写app程序然后编译生成hex文件,再利用官方提供的dfu file manager工具把这个hex编译成.dfu文件
3.然后打开官方提供的dfusedemo烧写软件,再将这个.dfu文件烧写进去...
 
看着好头大,最近也准备试试F103RB上面用dfu,按照F4的记录移植,最后没有成功...原因还在查找..
 
好了,回到正题:
免驱动的dfu, 首先不用安装任何驱动,任何电脑插上usb就能烧写..
用户只需要关注自己的app实现就行,不需要知道dfu的原理,也不需要移植..
 
鉴于这两个方面我决定试一试这个工具,
他提供了一个压缩包,里面

QQ截图20160719130555.png

一个dfu的固件,和dfu的辅助软件
首先看固件

QQ截图20160719130720.png

他把102/103和105/107的固件分开,这个估计是由于flash大小不一样,操作方式不一样吧?
我主要试试103的

QQ截图20160719130907.png

蓝色框里是对应6M或者8M晶振相应的用户app演示
红色框里是对应于6M或者8M晶振的芯片的固件
 
固件是要先烧录进芯片的,然后就可以以后利用hid烧写hex文件了.听起来很赞啊
 
要想烧录这个固件,必须用到一个工具,如j-flash
这个软件是j-link驱动里自带的,如果你安装过segger的j-link驱动,那么就可以找到它,
如果没有就去百度下载一个,
安装好之后就看到j-flash软件了

QQ截图20160719131642.png

打开

QQ截图20160719131829.png

第一次使用,先点击File->Open Project,然
后选择你要的芯片
QQ截图20160719131945.png

在选择File->Open data file
打开那个固件库中的固件

QQ截图20160719132203.png

默认的固件起始地址是0x8000000
这个绝对不要写错
 

QQ截图20160719132308.png

点击Target->Connect 连接j-link烧写器

QQ截图20160719132504.png

再次点击Target->Program
烧写程序
一路ok就行
这样固件就烧写完成了
 
然后你可以写一个F103RB的app应用程序,
 
Flash空间<=512KBytes的STM32F102xx and STM32F103xx
修改它的中断偏移为0x3000
修改它的起始地址为0x8003000
/////////////////////////////////////////////////
STM32F105x8、STM32F105xB、STM32F105xC
STM32F107xB、STM32F107xC
修改它的中断偏移为0x4000
修改它的起始地址为0x8004000

就和以前介绍的IAp的应用APP写法一样,然后生成对应的hex文件
再利用以前讲的hex转Bin的方法将这个hex编译成Bin文件
此时,打开HidDfuUI.exe软件
 

QQ截图20160719133207.png

然后点击开始下载,ok
再次点击 进入app按钮,运行你刚才写的app程序
 
下载标志
HidDfu固件使用OptionByte中的Data0保存APP下载标志。
HidDfu固件在写标志时将擦除OptionByte中除了读保护以外的其他字节。
APP清除该下载标志后,再插拔USB,将重新进入HidDfu。
清除标志的代码如下:在APP代码中增加如下代码段,执行这段代码就可以清除APP下载标志。
#include "stm32f10x_flash.h"
... ...
FLASH_Unlock();
FLASH_EraseOptionBytes(); //erase HidDfu go2app flag
FLASH_Lock();

 

经过测试一切ok,可以使用,免驱很方便,
所以推荐大家玩一玩
 
上面提到的所有软件在本站网盘里均有提供!
 
>>引用自:http://bbs.21ic.com/forum.php% ... 57606
 
已邀请:

要回复问题请先登录注册