我正在寻找一个有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。
我似乎无法写信给它
检查实际写入的代码。