如何在PIC24FJGB410中以批量模式为USB通信使用多个端点(输入和输出)

如何在PIC24FJGB410中以批量模式为USB通信使用多个端点(输入和输出),usb,winusb,Usb,Winusb,在我的项目中,我正在为主机的输入和输出配置USB端点(批量模式)。我正在使用PIC24FJ256GB410和配置有PIC24FSTARTER工具包的微芯片示例代码“供应商吞吐量” 如果我使用端点1、2、3表示OUT,端点1表示IN,那么一切都正常 当我将端点1、2、3配置为OUT,将端点81配置为IN.Data OUT时,效果很好,但Data IN根本不起作用 我使用VC++作为前端,WINUSB写入管道使用端点1作为输出,端点81作为输入 我完全糊涂了。一般来说,主机端和设备端的端点号都应该匹

在我的项目中,我正在为主机的输入和输出配置USB端点(批量模式)。我正在使用PIC24FJ256GB410和配置有PIC24FSTARTER工具包的微芯片示例代码“供应商吞吐量”

如果我使用端点1、2、3表示OUT,端点1表示IN,那么一切都正常

当我将端点1、2、3配置为OUT,将端点81配置为IN.Data OUT时,效果很好,但Data IN根本不起作用

我使用VC++作为前端,WINUSB写入管道使用端点1作为输出,端点81作为输入

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


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

代码链接如下所示




好的,我一直在写这段代码,发现了一些有趣的东西,我想和读者分享。如果我错了,请更正

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


此时,我选择使用EP1、2、3作为输出,并在EP4、5、6(在VC++中配置为84、85、86)中进行操作,一切正常。

“完整的代码已附加”-我看不出是这样。请您编辑问题,将其包括在内好吗?请阅读-总结是,这不是向志愿者致意的理想方式,可能会对获得答案产生反作用。请不要将此添加到您的问题中。我对丢失的代码表示歉意,事实上,网站阻止我发布三个问题链接。因此我无法更早发布。现在我复制了数据并粘贴了两个链接。我们更喜欢在问题中显示代码,因为链接往往会很快消失。请粘贴每段代码,选择它,然后单击“代码”
{}
按钮?这将对其进行适当的格式化。谢谢。如果粘贴,代码大约有6-7页,可能很难阅读。因此,将其作为链接发布,以便于理解。