我更改了像http://www.keil.com/forum/21413/lpc1769-usbhid-example/这样的keil USBHID示例,大约每1 ms可以发送64个字节

我的变化有些不同

  in demo.c and demo.h
U8 InReport[64]

U8 OutReport[64]

demo.c
void GetInReport(void) {

for(amiri=0;amiri<64;amiri++)
{
InReport[amiri]=amiri;
}
}

void SetOutReport(void) {
for(amiri=0;amiri<64;amiri++)
{
OutReport[amiri]=InReport[amiri]
}
}

hiduser.c
...
GetInReport();
for(amiri2=0;amiri2<64;amiri2++)
{
EP0Buf[amiri2]=InReport[amiri2];

}
break;

...

case HID_REPORT_INPUT;
for(amiri2=0;amiri2<64;amiri2)
{
OutReport[amiri2]=EP0Buf[amiri2];
}

usbuser.c

...
if(USB_Configuration) {
GetInReport();
USB_WriteEP(HID_EP_IN, &InReport[64],sizeof(InReport));
}
...
void USB_EndPoint1 (U32 event) {
...
USB_WriteEP(HID_EP_IN, &InReport[64],sizeof(InReport));
...
}


我可以通过libusb在C#中接收64字节(0到63)

批量传输并发送多个端点需要哪些更改??我想达到1Mbyte / s的速度,我知道有可能,但是我不知道需要进行哪些更改...
我可以使用同步传输并每毫秒发送1000个字节并达到此速度吗?为此需要进行哪些更改?

如果有人帮助我,我将非常感激

最佳答案

您可以看一下USB CDC示例,了解如何在µC上使用批量端点。

会有很多更改,尤其是在PC(主机)端:您现在需要自定义驱动程序-我不相信Windows CDC驱动程序在USB全速连接-YMMV上达到1MB / sec。对于较新的Windows版本,可以尝试使用WCID加载WinUSB驱动程序。这也意味着您必须重写主机应用程序才能使用WinUSB接口。

关于c# - 在LPC1768中,更改keil USBHID示例进行批量传输,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33451114/

10-14 21:58
查看更多