stm32f103&gd32的usb虚拟串口+打印类printer组合设备@TOC
stm32f103&gd32的usb虚拟串口,打印类printer组合设备
由于gd32和stm32f10x系列库和usb库都可以兼任,所以选择st的usb库,版本为V3.1.0。
在原有的虚拟串口demo中,加入打印类,组成组合设备,测试在win10和win7上都可以正确识别,由于是组合设备,共用的同一个VID和PID,这里选择了GD虚拟串口驱动的VID和PID,要不然串口驱动加载异常,晕倒,但是打印类的驱动没问题,可以正常识别。下面是设备描述符,
/* USB Standard Device Descriptor /
const uint8_t Virtual_Com_Port_DeviceDescriptor[] =
{
0x12, / bLength /
USB_DEVICE_DESCRIPTOR_TYPE, / bDescriptorType /
0x00, 0x02, / bcdUSB = 2.00 /
0x00, / bDeviceClass: CDC 0´ú±íÖÖÀàÐÅÏ¢ÔÚ½Ó¿ÚÃèÊö·ûÖÐ /
0x00, / bDeviceSubClass /
0x00, / bDeviceProtocol /
64, / bMaxPacketSize0 /
LW_UINT16(USB_VID), HI_UINT16(USB_VID), / idVendor = 0x0483 /
LW_UINT16(USB_PID), HI_UINT16(USB_PID), / idProduct = 0x7540 /
0x00, 0x03, / bcdDevice = 2.00 ³ö³¡±àºÅ /
1, / Index of string descriptor describing manufacturer /
2, / Index of string descriptor describing product /
3, / Index of string descriptor describing the device’s serial number /
0x01 / bNumConfigurations */
};
我的例程demo是基于freertos(纯属移植好玩),在usb虚拟串口和打印类接受数据都没问题,且经过大数据测试,usb虚拟串口还是usb传输的速度。下面是win10枚举出来的设备:需要的联系( T:18666267395)