【发布时间】:2011-11-16 02:34:33
【问题描述】:
我声明了两个输入报告(短报告为 64B,长报告为 128B),数据包大小为 64B 中断端点。
读取简短报告时,USB 分析器将简短报告的预期字节数 (64B) 显示为正在传输,但 ReadFile 抱怨我的缓冲区无效(尽管它足够大并且 numberOfBytesToRead = 64)。
如果我将长报告大小用于短报告上的 numberOfBytesToRead 参数,ReadFile 不会抱怨,但这是没有用的,而且显然是错误的。我怎样才能解决这个问题?
并且我在数据包大小中使用了多个中断端点以使事情变得简单;如果我的报告不是倍数会怎样?
我读到我需要在短报告末尾使用 ZLP 或短数据包,因为 HID 驱动程序需要最长大小的报告。所以这很可能是问题所在。是否有如何在 SiLabs 固件中制作 ZLP 的示例?我正在使用 C8051F320。
【问题讨论】: