欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

为啥pc检测到了stm32 usb设备,usb hound也是,但是usb hound检测不到设备发送的数据

更新时间: 2014-01-05 03:15:23 责任编辑: Author_N1

 

为什么pc检测到了stm32 usb设备,usb hound也是,但是usb hound检测不到设备发送的数据?
刚开始学stm32的usb,代码基本上都是对网上找到的修改的,也只是因为硬件方面修改了一些,主要的像描述符什么的都没有修改,win7系统已经检测到了stm的usb,usb hound已经可以看到设备的信息,我设置的功能是用stm32的中断触发usb发送4个字节的数据,但是usb hound上面没有检测到,我在主函数中用while循环发送该4字节的信息时也是如此,usb也是什么反应都没有,求高手指导,万分感谢!ps:stm32 usb和usb hound 都是刚接触的!
--参考方法--
似乎是usb hound设置不对,选择设备时,勾选STM32 USB设备向上到根结点路径上所有节点设备
--参考方法--
你设置的缓冲总大小和单条缓冲的大小都太小了,另外你没有把缓冲满自动停止的选项勾掉(默认是勾选的),所以每次缓冲满了就停下了,需要再次run.

那个进度条就是显示缓冲用了多少了。如果那个缓冲满自动停止使能的话,满了就停掉了。

单个缓冲的默认大小也很小,你上面每个最多才只能收8个字节,这个要放大点。

另外你下面的图明显是设置过虑了,只收IN和OUT消息。
--参考方法--
你上面的IN数据似乎是PID设备的数据,是否是你把和STM32 USB处于同一根集线器上的鼠标或键盘选上了
--参考方法--
建议你花点时间仔细看一下STM32给的USB源码,要对照USB协议看,再调试一下。

STM32下的USB的例子算是比较完备的,基本上改改就能用,但需要你对USB协议有个基本的了解。
--参考方法--
buffer overrun是USB从设备的IN端点或OUT端点的缓冲溢出了,
此时USB主机发起操作的时候,设备会给主机会USTS告诉主机缓冲溢出了
--参考方法--
我可不是大神啊,只是做过

如果经常出现no response,除程序原因外,也可能和硬件有关系,比如说和PCB板有关系,和USB连接线有关系(线不好,USB上出现数据错误),和你使用的是电脑前面的USB口还是后面的USB口也可能有关系(前面的USB一般不是根集线器)

另外你这里多出24个字节,应该和你的程序有关系。

--参考方法--
键值对应关系不对,HID的说明文档里有的,数字键1应该是1e,你也可以用bushound抓一下标准键盘的看一下
 

0 00 Reserved (no event indicated)9 N/A √ √ √ 4/101/104

1 01 Keyboard ErrorRollOver9 N/A √ √ √ 4/101/104

2 02 Keyboard POSTFail9 N/A √ √ √ 4/101/104

3 03 Keyboard ErrorUndefined9 N/A √ √ √ 4/101/104

4 04 Keyboard a and A4 31 √ √ √ 4/101/104

5 05 Keyboard b and B 50 √ √ √ 4/101/104

6 06 Keyboard c and C4 48 √ √ √ 4/101/104
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:15:23
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20200/
本文WWW.DOC100.NET DOC100.NET版权所有。