usbhid 端点0如何发送数据

usbhid 端点0如何发送数据,第1张

usbhid端点0发送数据是分两次发送的。检查一个端点的发送是否结束有二种方法:

1、当发送结束(设备收到ACK)时,有一个发送结束中断,这个中断由USB库处理,并通过EP1_IN_Callback这个回调函数交由用户程序确认。

2、查询这个端点的状态,如果端点状态处于EP_TX_VALID,说明发送未结束,如果端点状态处于EP_TX_NAK,说明发送结束。使用下述调用可以得到端点1的发送状态:GetEPTxStatus(ENDP1)。

usbhid是Human Interface Device的缩写,由其名称可以了解HID设备是直接与人交互的设备,例如键盘、鼠标与游戏杆等。不过HID设备并不一定要有人机接口,只要符合HID类别规范的设备都是HID设备。

交换的数据存储在称为报表(report)的结构内,设备的固件必须支持HID报表的格式。主机在控制与中断传输中传送与要求报表,来传送与接收数据。报表的格式非常有d性,可以处理任何类别的数据。

设备除了HID接口之外,它可能同时还包含有其他的USB接口。例如影像显示设备可能使用HID接口来做亮度,对比,与更新率的软件控制,而使用传统的影 像接口来传送要显示的数据。USB扩音器可以使用实时传输来播放语音,同时使用HID接口来控制音量,震荡,与低音等。HID接口通常比传统的控制接口来得便宜。

直接把USB链接起来,然后找到该设备号,填写进去直接发送即可。

你的采纳是我前进的动力,还有不懂的地方,请继续“追问”。

如你还有别的问题,可另外向我求助;答题不易,互相理解,互相帮助。

HidDevHandle = CreateFile (strtDetailData->DevicePath,

GENERIC_READ | GENERIC_WRITE,

FILE_SHARE_READ | FILE_SHARE_WRITE,

NULL,

OPEN_EXISTING,

FILE_FLAG_OVERLAPPED,

NULL)

bResult = WriteFile(hDevice,

&PC_DSPBuffer[0],

64, &numBytesReturned,

(LPOVERLAPPED) &HidOverlapped)

其中:strtDetailData->DevicePath就是HID的路径。

bResult返回总是0。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11273354.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存