USB复合设备一般用Interface Association Descriptor(IAD)实现,就是在要合并的接口前加上IAD描述符。
IAD描述符:
typedef struct _USBInterfaceAssociationDescriptor {
BYTE bLength: 0x08 //描述符大小
BYTE bDescriptorType: 0x0B //IAD描述符类型
BYTE bFirstInterface: 0x00 //起始接口
BYTE bInterfaceCount: 0x02 //接口数
BYTE bFunctionClass: 0x0E //类型代码
BYTE bFunctionSubClass: 0x03 //子类型代码
BYTE bFunctionProtocol: 0x00 //协议代码
BYTE iFunction: 0x04 //描述字符串索引
}
参考资料 /whdc/archive/IAD.mspx
这里有我发布的stm32虚拟双串口的例子/bbs/bbs_content.jsp?bbs_sn=4028048 下载
如果觉得《linux usb组合设备 USB复合设备的实现》对你有帮助,请点赞、收藏,并留下你的观点哦!