本帖最后由 autooy 于 2016-10-11 21:18 编辑
各位大侠:
现在我使用KL26单片机通过HID驱动USB设备通信及枚举等都工作正常了,但是有一个问题:就是由于我的单片机程序使用的是固定VID PID及产品序列号RID。导致我插一个USB设备时,枚举与通信及控制信号读取等都OK正常,但是我插第二个USB设备上去时,电脑设备管理器里无法识别,所以导致我VC++上位机更是无法识别与读取,请有经验的大侠告知一下如何做到可以识别2个及以上的USB在同一台电脑上被识别,谢谢。
下面是设备描述号:
/********************************************************************
* Device Descriptor
********************************************************************/
const uint8 Device_Descriptor[18]=
{
/*
0x12, //blength
0x01, //bDescriptor
0x01,0x01, //bcdUSB ver R=2.00
0x02, //bDeviceClass
0x00, //bDeviceSubClass
0x00, //bDeviceProtocol
0x20, //bMaxPacketSize0
0xA2,0x15, //idVendor - 0x15A2(freescale Vendor ID)
0x0C,0xA5, //idProduct
0x00,0x00, //bcdDevice - Version 1.00
0x00, //iManufacturer - Index to string Manufacturer descriptor
0x00, //iProduct - Index to string product descriptor
0x00, //iSerialNumber - Index to string serial number
0x01 //bNumConfigurations - # of config. at current speed,
*/
0x12, //blength
0x01, //bDescriptor
0x10,0x01, //bcdUSB ver R=2.00
0x02, //bDeviceClass
0x00, //bDeviceSubClass
0x00, //bDeviceProtocol
0x20, //bMaxPacketSize0
0xA2,0x15, //idVendor - 0x15A2(freescale Vendor ID) --- VID号
0x0F,0xA5, //idProduct --对应产品PID
0x00,0x00, //bcdDevice - Version 1.00 对应产品序列号
0x01, //iManufacturer - Index to string Manufacturer descriptor
0x02, //iProduct - Index to string product descriptor
0x03, //iSerialNumber - Index to string serial number
0x01 //bNumConfigurations - # of config. at current speed,
};
我通过修改PID后,下载程序至单片机插入电脑,发现无法识别,修改产品序列号可以正常识别,但是仍然无法识别第二个以上,即情况相同,请高手支招! |