打印

stm32f107usb热插拔又一怪现象

[复制链接]
1834|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chengying|  楼主 | 2012-7-3 16:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用usb的hid通信,程序从0x8000000处,带电拔掉usb再重新插上,usb能重新枚举恢复通信,而只要让程序从0x800a000处开始运行,0x8000000处加载了dfu的iap,程序可以正常运行,但是usb一拔掉再重新插上,usb无法重新枚举,通信失败
沙发
lxyppc| | 2012-7-3 16:58 | 只看该作者
会不会是中断向量的问题
虽然程序在0x800a000处开始,但是中断向量还是在0x8000000处

使用特权

评论回复
板凳
chengying|  楼主 | 2012-7-3 17:18 | 只看该作者
我中断向量改了,也改到0x800a000处,

使用特权

评论回复
地板
chengying|  楼主 | 2012-7-4 09:34 | 只看该作者
香主在哪呀,帮忙看看

使用特权

评论回复
5
chengying|  楼主 | 2012-7-4 10:31 | 只看该作者
发现只要拔掉usb,程序居然跳到iap去执行,邪门了,本来是在我用户区0x800a000处执行。火大了。

使用特权

评论回复
6
chengying|  楼主 | 2012-7-4 11:16 | 只看该作者
找到问题,拔掉usb后,usb进入suspend中断,中断让usb进入Sleep mode,之后插上usb,进入wakeup中断,在这里边重新把中断向量定位一下就ok!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

42

帖子

0

粉丝