写入一个USB设备,该设备共享一个输入和输出事务的端点



我正在寻找一个有2个接口的USB设备的帮助。第一个接口是HID,第二个接口是MSC。我正在使用STM32F415VG进行开发,并试图将其设置为USB主机。基本上,我可以与USB设备通信,没有任何问题。我可以装载FAT,可以很好地从设备中读取,但我似乎无法写入它。对描述符的进一步挖掘帮助我发现,我需要的接口(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 

我可以安装FAT并可以从设备上读取精细

输入和输出EP都必须工作,以便您能够从MSC设备读取。否则,电脑甚至无法正确检测到它。

我在这里有一个基于µC的MSC devic,它也对MSC In和Out使用相同的EP。

我似乎无法写信给它

检查实际写入的代码。

相关内容

最新更新