c# - 在LPC1768中更改keil USBHID示例以进行批量传输

标签 c# c arm usb data-transfer

我将keil USBHID示例更改为http://www.keil.com/forum/21413/lpc1769-usbhid-example/我可以大约每 1 毫秒发送 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 全速上达到 1MB/秒连接-YMMV。对于较新的 Windows 版本,可以尝试使用 WCID加载 WinUSB 驱动程序。这也意味着您必须重写主机应用程序才能使用 WinUSB 接口(interface)。

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

相关文章:

linux - 获取 ARM Linux 用户空间中 PHYS_OFFSET 的值

c# - 从另一个 WCF 服务中调用 WCF 服务时发生 WCF 内存泄漏

c# - 如何将日期时间字段转换为 2011 年 2 月 1 日之类的字符串?

c# - JSON 到 XML 类转换

c# 7.0 : switch on System. 类型

c - 传递并编辑字符串中的特定字符

c - 具有多个线程的 rand()

c - C 中与指针的奇怪交互

linux - GCC:在搜索 -ltest 时跳过不兼容的/home/Linux/lib/libtest.a

c - 如何在 ARM Cortex-M 上使用 GCC 定点类型扩展?