Interface 写入共享输入和输出事务端点的USB设备
寻找一些帮助与USB设备,我有2个接口。第一个接口是HID,第二个接口是MSC。我正在使用STM32F415VG进行开发,并尝试将其设置为USB主机。基本上,我可以与USB设备通信,没有任何问题。我可以安装脂肪,可以很好地读取设备,但我似乎无法写入它。对描述符的进一步挖掘有助于我发现我需要的接口(MSC)对in(0x81)和out(0x01)使用相同的端点地址。我用USB主机尝试过的所有其他设备似乎都使用不同的地址(通常为0x81、0x02)。我开始认为这可能是问题所在。有没有其他人遇到过类似的情况,或者能够证实我的假设?以下是我的端点描述符的副本,以防有所帮助: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)。我开始认为这可能是问题所在。有没有其他人遇到过类似的
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是不同的地址。如果你的固件不这么认为,那就是有问题了。啊,好吧,我想我误解了。那就回到原点吧!干杯