寻找有USB设备的帮助我有2个接口 . 第一个接口是HID,第二个接口是MSC . 我正在使用STM32F415VG进行开发,并尝试将其设置为USB主机 . 基本上,我可以毫无问题地与USB设备通信 . 我可以装载FAT并且可以从设备中读取正常,但我似乎无法写入它 . 在描述符中进一步挖掘有助于我发现我需要的接口(MSC)在(0x81)和out(0x01)中使用相同的 endpoints 地址 . 我尝试使用USB主机的所有其他设备似乎使用不同的地址(通常为0x81,0x02) . 我开始认为这可能是个问题 . 有没有其他人遇到类似或能够证实我的假设?这是我的 endpoints 描述符的副本,以防它有用:
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
1 回答
In和Out EP都必须能够为您提供从MSC设备读取的功能 . 否则PC甚至无法正确检测到它 .
我这里有一个基于μC的MSC设备,它也使用相同的EP进行MSC In和Out .
检查实际写入内容的代码 .