如何在PIC​​24FJGB410的USB通信的批量模式下使用多个端点(IN和OUT)

时间:2017-04-11 16:15:46

标签: usb winusb

在我的项目中,我正在为主机的输入和输出配置USB端点(批量模式)。我使用PIC24FJ166GB410和PIC示例代码“供应商吞吐量”配置了PIC24FSTARTER KIT。

如果我使用端点1,2,3为OUT和端点1用于IN,一切正常。

我为OUT配置端点1,2,3,为IN配置端点81。数据输出工作正常,但数据输入根本不起作用。

我使用VC ++作为前端,而WINUSB写管道使用端点1表示OUT,端点81表示IN。

我完全糊涂了。一般来说,主机端和设备端的端点号应匹配,但在我的情况下,我尝试匹配它的那一刻不起作用。

附上完整的代码以供调试和您的宝贵建议。

代码链接在

之下

USB Descriptor & USB CONFIGURATION

USB DATA IN & OUT CODE

1 个答案:

答案 0 :(得分:0)

O.K。好吧,我一直在研究这个代码,并找到了一些我想与读者分享的有趣内容。如果我错了,请纠正。

我认为问题已解决或实际上,根本没有问题。 USB是基于主机的协议,因此来自主机的数据OUT将始终为1,2,3,4,IN将为81,82,83。无论您如何从DEVICE发送。在设备初始化USB描述符时,我们已经完成了EP1,2,3 OUT和EP 81,82 IN,但实际上当我们发送/接收时,我们通过1,2,3和IN到1,2而不是81,82。 IN端点从1,2到81,82的转换由USB描述符完成。另外,在阅读PIC 24fj手册时,我只能找到0-15个端点。没有定义名称81,82的端点。所以简而言之,它的工作方式没有任何错误。

此时我选择使用EP1,2,3代表OUT和IN EP 4,5,6(在VC ++中配置为84,85,86)继续前进,一切顺利。