基于STC32G的USB_CDC虚拟串口+HID键盘, 只用1个USB口的复合设备
===基于STC32的代码包里无数的USB代码
虽然很好上手,不过组合的应用不多,这里附上一个复合设备的组合应用。
主要就是通过代码包里的CDC协议和HID键盘移植了一下,最难的就是设备符和设备描述符:
1.设备符:复合设备的设备类型有严格要求
2.描述符需要增加对应的IAD描述,需要严格遵守一下格式:
const uint8_t Mouse_ConfigDescriptor[Mouse_SIZ_CONFIG_DESC] =
{
配置描述符 //Configuration Descriptor 只能有1个
/*功能1 HID键盘*/
IAD描述符 //复合设备才有 在单接口的设备这个可以不要
接口1描述符 //Interface Descriptor
类描述符 //Class Desdriptor
端点描述符 //Endpoint Descriptor
/*功能2 虚拟串口*/
IAD描述符 //复合设备才有 在单接口的设备这个可以不要
接口3描述符 //Interface Descriptor
类描述符 //Class Desdriptor
端点描述符 //Endpoint Descriptor
/*如果有多个接口 下面还可以继续添加*/
...
}
整体流程如下:
代码附上
注意:代码里的VID和PID不能随意使用,仅供参考,商用的话请向STC官方申请或自行购买,不然出现任何问题本作者概不负责!