打印
[STM32F1]

关于USB HID类 读写操作的疑问

[复制链接]
2892|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mjj123|  楼主 | 2012-12-26 10:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 mjj123 于 2015-6-30 23:45 编辑

最近使用STM32F103系列开发USB通讯,使用的是HID类,PC端控制软件使用VC++开发,
现在对于HID中断读写操作有点疑问。

(1) USB HID设备有多个端点,端点0用于枚举过程中,当枚举成功后,我们从PC端读写设备,如果我使用了端点1与端点2两个端点,使用writefile函数如何区分是写到哪个端点去的
(2) 但使用Readfile从PC端读取数据时,我如何确定读取的是哪个端点的数据,因为我只能读到Report ID号。
(3) 是不是一个端点对应一个报告描述符啊?
(4) 我们readfile时,是从HID的驱动的buffer中读取的数据,一个USB接口就一个buffer,还是一个端点对于一个buffer,还是一个报告对应一个buffer?


网上这方面的资料比较少,找了好长时间也没有搞明白,希望各位高手,解疑下,谢谢了。     


----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
网上一句话:
报告是
一个数据包,里面包含的是所要传送的数据。输入报告是通过中断输入端点输入的,而输出报告有点区别,当没有中断输出端点时,可以通过控制输出
端点0发送,当有中断输出端点时,通过中断输出端点发出。


PC端仅有使用到报告ID, 而USB的报告ID与端点之间没有必然联系?
如果定义多个输入输出端点,PC发送一个报告,发送的 端点几?还是任意轮询发送的?



沙发
mjj123|  楼主 | 2015-7-1 23:18 | 只看该作者
再网上看到的一句话:

hid设备支持一个in和一个可选的out

当然在HID的协议中也看到支持一个IN与一个可选OUT, 那就是说 最多仅只能一个IN与一个OUT了

不能定义2个IN?  HID协议是这么理解的?

使用特权

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

本版积分规则

12

主题

54

帖子

0

粉丝