0

我知道 USB 端点有一些模式(控制、批量、中断和同步),它们可用于各种目的,但我不知道如何在小工具中将 USB 端点更改为这些模式?我已经阅读了 USB2.0 规范,然后我可以通过以下设置获取 USB 传输描述符:

ctrl.bRequestType = USB_DIR_IN|USB_TYPE_STANDARD|USB_RECIP_ENDPOINT;
ctrl.bRequest = USB_REQ_GET_DESCRIPTOR;
ctrl.wIndex = 0;           
ctrl.wLength = sizeof(buff);          
ctrl.data = buff;
ctrl.wValue = (USB_DT_CONFIG << 8) | 0;                                                         
result = ioctl(fd, USBDEVFS_CONTROL, &ctrl);

但是我仍然不知道我应该怎么做才能改变USB传输模式?

4

1 回答 1

1

端点在设备的描述符中描述。

如果不(实际上)拔出并重新枚举设备,就不可能更改描述符。

要允许更改单个接口的端点,您可以使用备用设置。
为了允许更改设备的更多属性,您可以使用多种配置。

要实现这一点,您需要在描述符中列出所有备用设置/配置,并实现设置接口/配置请求。

于 2016-02-04T08:57:08.503 回答