STM32f103xx USB HID做IAP功能,USB列举失败

2019-07-14 16:18发布

小弟最近遇到很頭痛的問題,
從IAP區跳轉至APP區USB通訊都正常,
但是當從APP區跳轉回IAP區時,USB列舉卻失敗,導致IAP區無法做USB通訊,也有試過IAP區不初始化USB,但中斷卻無效,
我很確定的是我IAP區與APP區都有重新設置RCC跟NVIC中斷向量
在IAP區的NVIC是NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);在APP區的NVIC是NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x4000);在APP區中的options IROM1我也有改成0x8004000,
跳轉到IAP區就是沒辦法做USB通訊,請問各位大大是甚麼問題啊???????????





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
jufenyi
1楼-- · 2019-07-14 21:44
用过ST的DFU,就知道多难用了。
huazhe
2楼-- · 2019-07-15 02:17
那你意思是说IAP和APP里各有相应的USB服务程序?
ywyrywer
3楼-- · 2019-07-15 04:02
 精彩回答 2  元偷偷看……
ywyrywer
4楼-- · 2019-07-15 06:11
jufenyi 发表于 2018-11-5 07:42
用过ST的DFU,就知道多难用了。

沒錯, 還是自己寫IAP比較快,因我是做產品需要在軟體上即時做韌體更新, 跟DFU差很多
ywyrywer
5楼-- · 2019-07-15 08:00
充电搜索 发表于 2018-11-5 07:30
我不明白的是,ST官方给的USB示例里边,不是有个DFU的例子吗? 就是用来USB升级的,当做IAP。
你为什么还自己使用HID写个,多费神。。再官方给的例子上改下就变成自己需要的了。

大大, 需求不一樣啊, DFU一定要用他自己的協議還有他自己的檔案格式,又不能及時使用自己寫的軟體做更新, 請問不自己用HID寫IAP要怎麼做??
充电搜索
6楼-- · 2019-07-15 09:59
"不能及時使用自己寫的軟體做更新", 不明白这句话。

使用DFU可以将自己生成的HEX,BIN,S19格式的文件,官方有提供一个转化工具可以转化为DFU格式,就可以升级了,随时可以把自己的软件生成的烧录文件烧录到到MCU内。

且DFU做IAP的代码是开源的,自己可以做随意修改和二次开发。至于DFU的类定义,这也是遵循USB标准类定义0xFE,0x01,可以到usb.org官网上查看。通讯协议代码为0x02,DFU mode protocol也是标准的,usb.org官网上可以查看,给个链接吧:http://www.usb.org/developers/docs/devclass_docs/DFU_1.1.pdf

但话说,是什么通讯协议重要么?

总而言之,使用DFU的IAP是对于固件升级是完全可以满足的,且开源,只不过你对其不够了解罢了。

一周热门 更多>