大家好,
最近在弄一个HID+MSC的复合设备,基于
STM32_USB-Host-Device_Lib_V2.2.0 库进行修改。
芯片使用的是STM32F429IG
下面是我的端点定义
#define MSC_IN_EP 0x81 //bit7: 0-OUT 1-IN 即0X8x 为输入端点x
#define MSC_OUT_EP 0x01
#define MSC_MAX_PACKET 64
#define MSC_MEDIA_PACKET 32*1024
#define HID_IN_EP 0x82
#define HID_OUT_EP 0x02
#define HID_IN_PACKET 0x40
#define HID_OUT_PACKET 0x40
端点1用于MSC,端点2用于HID设备。
我遇到的问题是,系统能正常枚举复合设备,且能正常读写MSC设备。
HID端点STM32能正常接收,但是PC却收不到HID发送的数据。
也就是说0x82端点没有起到发送的作用,找了很久没找到原因。
把MSC的端点和HID的端点互换,也就是改成
#define MSC_IN_EP 0x82 //bit7: 0-OUT 1-IN 即0X8x 为输入端点x
#define MSC_OUT_EP 0x02
#define HID_IN_EP 0x81
#define HID_OUT_EP 0x01
此时HID能正常收发,MSC设备无法识别。
只有端点1能正常工作,似乎是哪里还没有改到,
请帮忙看一下,感谢。