Interface 写入共享输入和输出事务端点的USB设备

Interface 写入共享输入和输出事务端点的USB设备,interface,usb,stm32,endpoints,Interface,Usb,Stm32,Endpoints,寻找一些帮助与USB设备,我有2个接口。第一个接口是HID,第二个接口是MSC。我正在使用STM32F415VG进行开发,并尝试将其设置为USB主机。基本上,我可以与USB设备通信,没有任何问题。我可以安装脂肪,可以很好地读取设备,但我似乎无法写入它。对描述符的进一步挖掘有助于我发现我需要的接口(MSC)对in(0x81)和out(0x01)使用相同的端点地址。我用USB主机尝试过的所有其他设备似乎都使用不同的地址(通常为0x81、0x02)。我开始认为这可能是问题所在。有没有其他人遇到过类似的

寻找一些帮助与USB设备,我有2个接口。第一个接口是HID,第二个接口是MSC。我正在使用STM32F415VG进行开发,并尝试将其设置为USB主机。基本上,我可以与USB设备通信,没有任何问题。我可以安装脂肪,可以很好地读取设备,但我似乎无法写入它。对描述符的进一步挖掘有助于我发现我需要的接口(MSC)对in(0x81)和out(0x01)使用相同的端点地址。我用USB主机尝试过的所有其他设备似乎都使用不同的地址(通常为0x81、0x02)。我开始认为这可能是问题所在。有没有其他人遇到过类似的情况,或者能够证实我的假设?以下是我的端点描述符的副本,以防有所帮助:

Ep_Desc[0]  0x2000c230  
    Ep_Desc[0][0]   {...}   
        bLength             0x7 
        bDescriptorType     0x5 
        bEndpointAddress    0x82    
        bmAttributes        0x3 
        wMaxPacketSize      0x8 
        bInterval           0x5 
    Ep_Desc[0][1]   {...}   
        bLength             0x7 
        bDescriptorType     0x5 
        bEndpointAddress    0x2 
        bmAttributes        0x3 
        wMaxPacketSize      0x8 
        bInterval           0x5 

Ep_Desc[1]  0x2000c240  
    Ep_Desc[1][0]   {...}   
        bLength             0x7 
        bDescriptorType     0x5 
        bEndpointAddress    0x81    
        bmAttributes        0x2 
        wMaxPacketSize      0x40    
        bInterval           0x0 
    Ep_Desc[1][1]   {...}   
        bLength             0x7 
        bDescriptorType     0x5 
        bEndpointAddress    0x1 
        bmAttributes        0x2 
        wMaxPacketSize      0x40    
        bInterval           0x0 
我可以安装脂肪,可以从设备上很好地读取

输入和输出EPs都必须工作,才能从MSC设备读取数据。否则,电脑甚至无法正确检测到它

我这里有一个基于µC的MSC Device,它对MSC输入和输出也使用相同的EP

我似乎不能给它写信


检查实际写入内容的代码

那不是你的问题。端点方向位构成地址的一部分,因此0x01和0x81是不同的地址。如果你的固件不这么认为,那就是有问题了。啊,好吧,我想我误解了。那就回到原点吧!干杯