我试图在infineon fx3上进行控制传输,但是当我调用libusb_control_transfer()时,我得到了LIBUSB_ERROR_PIPE。有人能帮忙吗?
int BulkTransferLoopback::sendControl(uint8_t data[], int length, uint8_t rx[]) {
int numdevs = cyusb_open();
if (numdevs > 0)
{
int r = cyusb_open(VENDORID, PRODUCTID);
if (r != 1) {
// check for errors
printf("Could not open device!\n");
}
_handle = cyusb_gethandle(0);
findEndpoints();
// Send data
// I think error is coming from parameters 1-3.
int err = libusb_control_transfer(_handle, 0x40, 42, 0x1234, 0, data, 2, 1000);
printf("%s\n", libusb_error_name(err));
cyusb_close();
}
return numdevs;
}发布于 2022-08-30 18:55:30
当设备不支持控制请求时,将获得LIBUSB_ERROR_PIPE,因此首先可以检查FX3中是否正确处理了控制请求。
您可以使用USB分析器(如Wireshark)检查USB跟踪,以了解USB控制传输的状态。
此外,https://community.infineon.com/可以帮助您调试FW代码。
https://stackoverflow.com/questions/73532110
复制相似问题