怎么防止usb dfu 协议程序读出来

您现在的位置: >
技术贴:AAPM2.5飞控板烧固件教程
来源:未知 
作者:上海航拍
发布时间: 20:29
已经有:人看过
本内容并非原创&&转发自Vincent_shen&的内容&&发表仅仅为了方便广大机友。下载程序前的软硬件准备:一、USBtinyISP编程器,usbasp编程器二、电脑装好arduino,progisp1.72三、链接好APM主板,编程器安装好相应的驱动四、替换arduino默认引导文件(stk500boot_v2_mega2560.hex),文件路径:你的arduino文件夹\hardware\arduino\bootloaders\stk500v2),&&APM的引导文件路径为:&ArduPlane-2.xx\Tools\APM2_2560_bootloader\&stk500boot_v2_mega2560.hex一、刷新mega2560bootloader文件:1、文件替换完毕后打开arduino&编译软件&选择Tools---&Programmer选择刷机线为USBtinyISP2、选择Tools---&Board选择主板为Arduino&mega&25603、点击Burn&bootloader4&稍等片刻5、烧写成功后会出现校验错误,这是因为IDE的校验功能不是很完善,校验不了,所以才会出现这样的校验错误。其实bootloader已经下载完毕了。这时候可以看到B、C指示灯在闪烁。二、刷新mega32U2的bootloader文件Mega32U2的bootloader文件路径为:&ArduPlane-2.xx\Tools\ArduPPM\ATMega32U2\Arduino-usbdfu.hex1、&&打开progisp,选择芯片为mega32U22、&&连接usbasp与APM板,点击RD,读出芯片ID3、&&调入fhex文件,点击调入flash,选择我们的hex文件4、&&选择芯片擦除、编程flash、校验flash即可,点击“自动”,过几分钟,烧写就完成了。5、&&现在开始烧写熔丝位,bootloader原来的熔丝位可能不能正常通讯。点击&熔丝设置,弹出窗口,在窗口内改写熔丝为低位:FF,高位:D9&扩展位F4如图所示,然后点击“写入”。现在mega2560和mega32U2的bootloader都烧写完毕了,下面连接APM板的usb口和电脑,电脑提示发现新硬件点击关闭,进行手动安装手动选择驱动路径,路径为ArduPlane-2.xx\Tools\ArduPPM\ATMega32U2\点击下一步,出现窗口,点击“始终安装”。安装完毕打开flip,点击&芯片图标,选择芯片:ATmega32U2,点击确定点击&线缆图标,选择usb点击open可以看到芯片信息点击&载入hex文件图标,载入mega32U2的hex文件,此hex文件在官方wiki的download下可以下载到。点击RUN,开始向芯片下载程序下载完毕,提示校验通过。断开usb口,再次连接上,即可发现新硬件点击关闭,然后手动更新驱动将&驱动文件Arduino&MEGA&2560.inf放在某个目录下面(此驱动文件也在官方下载),然后选择该目录,我将其放在了D:\APM&firmware,所以我选择该目录点击“确定”,再点击“下一步”点击“始终安装”驱动安装完毕,电脑自动给其分配了com端口。返回下面,打开Mission&Planner,点击firmware进行下载固件。以连接上网络,看到各个版本的固件了。至此,APM2.5飞控的固件程序就烧写完成了。下面就可以连接设备飞行了!(本文完)&
如果您有航拍需求或需要我们的帮助。您可以随时拨打晨风影像科技24小时免费咨询电话181-或与在线与我们取得联系。
您可能想了解后使用快捷导航没有帐号?
查看: 8035|回复: 1
DFU调试步骤和所遇到的问题
在线时间120 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 104, 距离下一级还需 96 积分
一粒金砂(中级), 积分 104, 距离下一级还需 96 积分
DFU调试步骤
步骤可以参考3合1的stm32 usbiap 操作详解
需要注意的问题
官方usb DFU例程 需要修改&&按键程序
&&DFU_Button_Config(); 设置你开发板上的按键引脚
当接低电平时为DFU模式 可插入usb识别为STM32 Device in DEF Mode
软件版本为Dfuse Demo (v3.0.0) 详细如 3合1的stm32 usbiap所描述
有二 个问题一直没解决,就是在leave DFU mode中49%会出错 不过不影响程序运行
还有就是在下载很大的程序时候程序不能正常运行(用了我好长时间),正在找原因 可能是程序太大 加上DFU程序超过了flash的范围 我的是C8T6
正常运行程序时 让按键置高电平或者接高电平就行
希望大家能帮忙解决上面2个问题
所需资料如下
下面是网上搜索的资料
1.解压3in1_stm32.rar。
2.安装DfuSe_Demo_V2.2.1_Setup.exe。3.打开G:\3in1_stm32\STM32_USB-DfuFs-Device_Upgrade\Project\usb_Device_Firmware_Upgrade\RVMDK\dfu.uv2编译程序,用stlink将程序下载到3合1的STM32中。4.选择STM32小板部分usb供电,用usb线连接STM32板,出现发现新硬件。5.安装驱动,如果第二步默认安装的话,选择驱动C:\Program Files\STMicroelectronics\DfuSe\Driver\stdfu.inf6.打开gpio工程,编译选项设置device 选择stm32f103c8& & target 在IROM1 start处设置0x8003000& & output 钩上create HEX File ok 设置好编译。7.打开C:\Program Files\STMicroelectronics\DfuSe\BIN\dfufilemgr.exe 选择 I want to generate a dfu file from s19 ,hex or bin& && &&&ok& && &&&选择s19 or hex 选择gpio工程生成的gpio.hex& && &点击generate& &保存为gpio.dfu8.打开C:\Program Files\STMicroelectronics\DfuSe\BIN\dfusedemo.exe
按下那个板子上自带方向按钮,重新加电,如果驱动安装正确,会显示stm device in dfu mode
然后点击右下脚的choose,选择刚才生成的gpio.dfu
点击upgrade
固件烧写成功。(注意:加电前请务必先按下那个板子上自带方向按钮,按下此按钮表示执行IAP应用程序,否则执行用户程序)9.点击左上角的leave dfu mode,ok& &&&是不是发现小板上的几个led灯在闪烁了。10.呵呵,到此结束。stm32内部有两个flash区域,一个是system flash,用于存放iap代码,该区域不对用户开放。一个是user flash,这个部分供用户使用。而system flash块固化了uart iap,这里的iap程序是用了部分user flash。所以IAP程序中有个判定,这里我用了3合1板上的那个joystick按钮,按下去的时候执行IAP程序,不按的话,程序跳转到0x8003000处执行。所以可以直接用3合1板子上的usb口直接下载程序到user flash的0x8003000以后的flash空间.
今天晚上尝试使用STM32的DFU功能。说白了就是USB版的IAP。不同于SST89XXX系列的IAP,需要自己先将IAP代码下载到0地址。而程序编译时则需选择在0地址外的非IAP代码区域。由于文件过大无法上传,需要的朋友可以上网上搜搜。关于使用也就不用我来写教程了吧,我也是看别人的教程学的,花了10多分钟。不过我也遇到在退出DFU模式时,发现也是49%出错问题。不知是不是DFU软件版本问题。还有一点就是第一次IAP是不用按任何按键。而第二次必须使PB.0按键接地(根据代码可修改,也就是所谓的按键更新代码功能)下载完后直接断开PB.0的地线。复位一下就可以看到代码的效果了。方便的DFU功能相对于串口的IAP而言是进步了不少,至少笔记本用户会很喜欢。近来无聊也不知道该干点什么。离高频和数电考试时间在拉近,复习是必要的...........
本帖子中包含更多资源
才可以下载或查看,没有帐号?
我的板子 为什么usb无法被PC机识别啊&
自信诚信,天道酬勤!
&&&&&&&&&&
在线时间74 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 34, 距离下一级还需 166 积分
一粒金砂(中级), 积分 34, 距离下一级还需 166 积分
回复 楼主 caesar.song 的帖子
我的板子 为什么usb无法被PC机识别啊
Powered by
逛了这许久,何不进去瞧瞧?你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
回复了问题 o 34 人关注 o 25 个回复 o 7571 次浏览 o 2 天前
o 来自相关话题
回复了问题 o 8 人关注 o 9 个回复 o 2718 次浏览 o
o 来自相关话题
回复了问题 o 24 人关注 o 10 个回复 o 8189 次浏览 o
o 来自相关话题
回复了问题 o 46 人关注 o 22 个回复 o 9334 次浏览 o
o 来自相关话题
回复了问题 o 37 人关注 o 21 个回复 o 15691 次浏览 o
o 来自相关话题
回复了问题 o 23 人关注 o 18 个回复 o 1582 次浏览 o
o 来自相关话题
回复了问题 o 11 人关注 o 14 个回复 o 1791 次浏览 o
o 来自相关话题
回复了问题 o 27 人关注 o 16 个回复 o 3954 次浏览 o
o 来自相关话题
发表了文章 o 4 个评论 o 571 次浏览 o
o 来自相关话题
提示 : 可直接粘贴图片截图!1.&如何新建工程,以及设置LED的GPIO就不写了,网站上有教程的。
2.&STM32&初学,分享一下自己在学习板上的简单的练习程序,代码在实验板上测试通过。
led.c&文件
#include&&led.h&
/**&配置led用到的端口、引脚&*/
const&struct&GPIO_LED&led[]&=
&&&&GPIOD,&GPIO_PIN_2,
&&&&GPIOD,&GPIO_PIN_3,
&&&&GPIOD,&GPIO_PIN_4,
&&&&GPIOD,&GPIO_PIN_7,
#define&NUM_LEDS&(sizeof(led)&/&sizeof(struct&GPIO_LED))
&*&@brief&&&点亮led驱动程序&可同时点亮多个&
&*&@param&&&val&多个LED组合
&*&@return&&None
&*&@note&&&&例如:&led_on(LED_0&|&LED_1)
void&led_on(uint16_t&val)&
&&&&uint8_t&n;
&&&&for(n&=&0;&n&&&NUM_LEDS;&n++)
&&&&&&&&if&(val&&&(1&&&&n))&
&&&&&&&&&&&&HAL_GPIO_WritePin(led[n].port,&led[n].pin,&GPIO_PIN_SET);&&&&&&&&
&&&&&&&&}&&&&&&&&
&*&@brief&&&熄灭led驱动程序&可同时熄灭多个&
&*&@param&&&val&多个LED组合
&*&@return&&None
&*&@note&&&&例如:&led_off(LED_0&|&LED_1)
void&led_off(uint16_t&val)&
&&&&uint8_t&n;
&&&&for(n&=&0;&n&&&NUM_LEDS;&n++)
&&&&&&&&if&(val&&&(1&&&&n))&
&&&&&&&&&&&&HAL_GPIO_WritePin(led[n].port,&led[n].pin,&GPIO_PIN_RESET);&&&&&&&&
&&&&&&&&}&&&&&&&&
&&&&}&&&&&
led.h&文件
#ifndef&__LED_H
#define&__LED_H
#include&&stm32f1xx_hal.h&
struct&GPIO_LED
&&&&GPIO_TypeDef&&&&&&*
&&&&uint16_t&&&&&&&&&&
#define&&&&LED_0&&&&&&&&0x01&&&&
#define&&&&LED_1&&&&&&&&0x02&&&&
#define&&&&LED_2&&&&&&&&0x04&&&&
#define&&&&LED_3&&&&&&&&0x08&&&&
#define&&&&LED_4&&&&&&&&0x10
#define&&&&LED_5&&&&&&&&0x20
#define&&&&LED_6&&&&&&&&0x40
#define&&&&LED_7&&&&&&&&0x80
#define&&&&LED_ALL&&&&&&&&0xFFFF
void&&&&led_on(uint16_t&val);
void&&&&led_off(uint16_t&val)&;
int&main(void)
&&/*&USER&CODE&BEGIN&1&*/
&&&&uint8_t&i&=&0;
&&/*&USER&CODE&END&1&*/
&&/*&MCU&Configuration----------------------------------------------------------*/
&&/*&Reset&of&all&peripherals,&Initializes&the&Flash&interface&and&the&Systick.&*/
&&HAL_Init();
&&/*&Configure&the&system&clock&*/
&&SystemClock_Config();
&&/*&Initialize&all&configured&peripherals&*/
&&MX_GPIO_Init();
&&/*&USER&CODE&BEGIN&2&*/
&&/*&USER&CODE&END&2&*/
&&/*&Infinite&loop&*/
&&/*&USER&CODE&BEGIN&WHILE&*/
&&while&(1)
&&/*&USER&CODE&END&WHILE&*/
&&&&&&i&=&(i&&=&3)?&0&:&i&+&1;
&&&&&&led_on(LED_0&&&&i);
&&&&&&delay_n_ms(500);
&&&&&&led_off(LED_0&&&&i);
&&&&&&delay_n_ms(500);
&&/*&USER&CODE&BEGIN&3&*/
&&/*&USER&CODE&END&3&*/
提示 : 可直接粘贴图片截图!1.&如何新建工程,以及设置LED的GPIO就不写了,网站上有教程的。
2.&STM32&初学,分享一下自己在学习板上的简单的练习程序,代码在实验板上测试通过。
led.c&文件
#include&&led.h&
/**&配置led用到的端口、引脚&*/
const&struct&GPIO_LED&led[]&=
&&&&GPIOD,&GPIO_PIN_2,
&&&&GPIOD,&GPIO_PIN_3,
&&&&GPIOD,&GPIO_PIN_4,
&&&&GPIOD,&GPIO_PIN_7,
#define&NUM_LEDS&(sizeof(led)&/&sizeof(struct&GPIO_LED))
&*&@brief&&&点亮led驱动程序&可同时点亮多个&
&*&@param&&&val&多个LED组合
&*&@return&&None
&*&@note&&&&例如:&led_on(LED_0&|&LED_1)
void&led_on(uint16_t&val)&
&&&&uint8_t&n;
&&&&for(n&=&0;&n&&&NUM_LEDS;&n++)
&&&&&&&&if&(val&&&(1&&&&n))&
&&&&&&&&&&&&HAL_GPIO_WritePin(led[n].port,&led[n].pin,&GPIO_PIN_SET);&&&&&&&&
&&&&&&&&}&&&&&&&&
&*&@brief&&&熄灭led驱动程序&可同时熄灭多个&
&*&@param&&&val&多个LED组合
&*&@return&&None
&*&@note&&&&例如:&led_off(LED_0&|&LED_1)
void&led_off(uint16_t&val)&
&&&&uint8_t&n;
&&&&for(n&=&0;&n&&&NUM_LEDS;&n++)
&&&&&&&&if&(val&&&(1&&&&n))&
&&&&&&&&&&&&HAL_GPIO_WritePin(led[n].port,&led[n].pin,&GPIO_PIN_RESET);&&&&&&&&
&&&&&&&&}&&&&&&&&
&&&&}&&&&&
led.h&文件
#ifndef&__LED_H
#define&__LED_H
#include&&stm32f1xx_hal.h&
struct&GPIO_LED
&&&&GPIO_TypeDef&&&&&&*
&&&&uint16_t&&&&&&&&&&
#define&&&&LED_0&&&&&&&&0x01&&&&
#define&&&&LED_1&&&&&&&&0x02&&&&
#define&&&&LED_2&&&&&&&&0x04&&&&
#define&&&&LED_3&&&&&&&&0x08&&&&
#define&&&&LED_4&&&&&&&&0x10
#define&&&&LED_5&&&&&&&&0x20
#define&&&&LED_6&&&&&&&&0x40
#define&&&&LED_7&&&&&&&&0x80
#define&&&&LED_ALL&&&&&&&&0xFFFF
void&&&&led_on(uint16_t&val);
void&&&&led_off(uint16_t&val)&;
int&main(void)
&&/*&USER&CODE&BEGIN&1&*/
&&&&uint8_t&i&=&0;
&&/*&USER&CODE&END&1&*/
&&/*&MCU&Configuration----------------------------------------------------------*/
&&/*&Reset&of&all&peripherals,&Initializes&the&Flash&interface&and&the&Systick.&*/
&&HAL_Init();
&&/*&Configure&the&system&clock&*/
&&SystemClock_Config();
&&/*&Initialize&all&configured&peripherals&*/
&&MX_GPIO_Init();
&&/*&USER&CODE&BEGIN&2&*/
&&/*&USER&CODE&END&2&*/
&&/*&Infinite&loop&*/
&&/*&USER&CODE&BEGIN&WHILE&*/
&&while&(1)
&&/*&USER&CODE&END&WHILE&*/
&&&&&&i&=&(i&&=&3)?&0&:&i&+&1;
&&&&&&led_on(LED_0&&&&i);
&&&&&&delay_n_ms(500);
&&&&&&led_off(LED_0&&&&i);
&&&&&&delay_n_ms(500);
&&/*&USER&CODE&BEGIN&3&*/
&&/*&USER&CODE&END&3&*/
回复了问题 o 8 人关注 o 9 个回复 o 866 次浏览 o
o 来自相关话题
38 个问题, 4 次赞同
2 个问题, 0 次赞同
1 个问题, 0 次赞同
2 个问题, 0 次赞同
2 个问题, 0 次赞同查看: 5611|回复: 3
下载并安装Apple Recovery (iBoot) USB的驱动程序
在线时间 小时
TA的每日心情奋斗 17:51签到天数: 53 天[LV.5]常住居民I
用爱思助手对一台IPAD进行刷机,在进行到自动连接到DFU模式时,电脑提示找不到驱动。之后,所有的苹果设备都无法安装Apple Recovery USB驱动并不能刷机,用itunes也不能安装驱动和进行刷机。Windows操作中心提示“下载并安装Apple Recovery (iBoot) USB的驱动程序”。于是删除ITUNES并重新安装ITUNES,问题依旧。这问题都出现好几次了,每次出现都是重装电脑系统才解决的,有没有办法不重装系统就能解决的方法呢?求大神指教……
在线时间 小时
TA的每日心情郁闷 09:01签到天数: 376 天[LV.9]以坛为家II
手机iPad无法链接爱思助手,请参考:,如果安装91助手,建议卸载之后再试!
在线时间 小时
TA的每日心情奋斗 17:51签到天数: 53 天[LV.5]常住居民I
手机iPad无法链接爱思助手,请参考:/newsContent-502.html,如果安装91助手,建议卸载之 ...
我的电脑里有你说的那个服务,而且显示的是已启动。但是还是不能连接
在线时间 小时
TA的每日心情郁闷 09:01签到天数: 376 天[LV.9]以坛为家II
我的电脑里有你说的那个服务,而且显示的是已启动。但是还是不能连接
卸载重新安装试试!
热门推荐 /2
通过本教程可以完美降级至6.1.3,完美激活,基带工作,有信号,可以打电话发短信上网,有锁机也没有问题,支持完美越狱。
iOS完美越狱正式发布,本次越狱兼容所有iOS 9 -- iOS 9.0.2 的设备。- Database Error
Discuz! Database Error
已经将此出错信息详细记录, 由此给您带来的访问不便我们深感歉意.

我要回帖

更多关于 stm32 dfu usb盘 的文章

 

随机推荐