基于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
-
- /*如果有多个接口 下面还可以继续添加*/
- ...
- }
复制代码
整体流程如下:
快下班了,具体的后面有空在写,代码附上
|