本帖最后由 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发送一个报告,发送的 端点几?还是任意轮询发送的?
|