Usb 控制端点上的输入和输出数据包
控制端点可以接收输入和输出数据包吗 作为正常终点?或者它可以Usb 控制端点上的输入和输出数据包,usb,Usb,控制端点可以接收输入和输出数据包吗 作为正常终点?或者它可以 仅接收设置数据包之后的输入和输出数据包?设置数据包始终是控制传输的一部分。 主机总是通过发送设置数据包来启动控制传输。输入或输出数据将跟随它。通常,用于控制传输的USB API包括设置数据包和数据缓冲区。例如,libusb函数如下所示: int libusb_control_transfer (libusb_device_handle * dev_handle, uint8_t bmRequestType, u
仅接收设置数据包之后的输入和输出数据包?设置数据包始终是控制传输的一部分。 主机总是通过发送设置数据包来启动控制传输。输入或输出数据将跟随它。通常,用于控制传输的USB API包括设置数据包和数据缓冲区。例如,libusb函数如下所示:
int libusb_control_transfer (libusb_device_handle * dev_handle,
uint8_t bmRequestType,
uint8_t bRequest,
uint16_t wValue,
uint16_t wIndex,
unsigned char *data,
uint16_t wLength,
unsigned int timeout
)
bmRequestType、bRequest、wValue、wIndex和wLength参数用于设置数据包
Microsoft提供的以下文档还应有助于理解控件传输的工作原理:
虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-有趣的事实:从atmega32u4数据表中对
RXSTPI
位的描述中可以看出:“如果端点是in端点,则该位处于非活动状态(已清除)。”由此我们可以得出结论,设置数据包可能由控制端点和OUT端点接收,而不是in端点。@Striezel感谢您的评论,我已经编辑了我的答案。问题是控制端点上是否存在“非控制”传输。