[STM32F4]

USB HID设备出现重复断开又重连的问题

[复制链接]
3864|7
手机看帖
扫描二维码
随时随地手机跟帖
hzt1234hf|  楼主 | 2016-9-24 14:52 | 显示全部楼层 |阅读模式
stm32F405RG的芯片,我直接将PA11和PA12连到USB-DM和USB-DP上了,不知直接连可以不,需不需要加什么芯片?
程序使用CubeMx生成,其中中有3个TIM中断,每秒钟总共中断大约2000次,其中使用了printf函数(1s用一次),fputc已经重定义到串口,串口波特率115200,在这种情况下运行时就会发生USB断开连接又重新连接,而且更奇怪的是跟printf函数的频率一致,即1s出现一次这种情况,如果我注释掉TIM中断中的printf函数或者提高波特率(设置为840000),就没有上述情况了,首先我看了下优先级,三个TIM优先级都是主2子1,USB优先级默认主0子0,USB应该会中断TIM的中断优先去执行,printf函数应该不会影响到USB,所以现在就想不到问题的原因了,所以想和大家一块讨论下这个问题,虽然可以通过提高波特率解决但还是想知道为什么会发生这种情况
yiyigirl2014| | 2016-9-24 16:07 | 显示全部楼层
不会是USB接口供电不足吧,我的部分USB设备就是供电不足,总是无法识别

使用特权

评论回复
hzt1234hf|  楼主 | 2016-9-24 17:40 | 显示全部楼层
yiyigirl2014 发表于 2016-9-24 16:07
不会是USB接口供电不足吧,我的部分USB设备就是供电不足,总是无法识别

不应该啊,我的是USB供电的,如果供电不足芯片应该会Reset的,但是并没有啊

使用特权

评论回复
icecut| | 2016-9-25 11:37 | 显示全部楼层
每秒中断2000次.真的很牛X啊....软件问题

使用特权

评论回复
jekey| | 2016-9-25 14:48 | 显示全部楼层
中断中的printf消耗时间太长,影响usb的中断响应。
想办法把prinf放到中断外吧。

使用特权

评论回复
hzt1234hf|  楼主 | 2016-9-25 19:31 | 显示全部楼层
icecut 发表于 2016-9-25 11:37
每秒中断2000次.真的很牛X啊....软件问题

2000次真的不多,168Mhz频率,能处理不少东西呢

使用特权

评论回复
hzt1234hf|  楼主 | 2016-9-25 19:33 | 显示全部楼层
jekey 发表于 2016-9-25 14:48
中断中的printf消耗时间太长,影响usb的中断响应。
想办法把prinf放到中断外吧。 ...

USB中断的优先级比tim的高,理论上TIM中断处理过程中如果有USB中断应该优先处理USB中断,不应该受影响的,除非printf中关闭了总中断

使用特权

评论回复
lefeng| | 2016-9-25 22:13 | 显示全部楼层
prinf应该在中断外的

使用特权

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

本版积分规则

6

主题

29

帖子

0

粉丝