电子DIY小家 发表于 2023-9-1 16:53:23

USB_CDC虚拟串口+HID键盘, 只用1个USB口的复合设备

基于STC32G的USB_CDC虚拟串口+HID键盘, 只用1个USB口的复合设备
===(挥泪附上源码),基于STC32的代码包里无数的USB代码

虽然很好上手,不过组合的应用不多,这里附上一个复合设备的组合应用。
主要就是通过代码包里的CDC协议和HID键盘移植了一下,最难的就是设备符和设备描述符:

1.设备符:复合设备的设备类型有严格要求



2.描述符需要增加对应的IAD描述,需要严格遵守一下格式:

const uint8_t Mouse_ConfigDescriptor =
{
配置描述符   //Configuration Descriptor 只能有1个

/*功能1 HID键盘*/
IAD描述符    //复合设备才有 在单接口的设备这个可以不要
                  接口1描述符   //Interface Descriptor
                  类描述符    //Class Desdriptor
                  端点描述符//Endpoint Descriptor

/*功能2 虚拟串口*/
IAD描述符    //复合设备才有 在单接口的设备这个可以不要
                  接口3描述符   //Interface Descriptor
                  类描述符    //Class Desdriptor
                  端点描述符//Endpoint Descriptor

/*如果有多个接口 下面还可以继续添加*/
...
}整体流程如下:




快下班了,具体的后面有空在写,代码附上



电子DIY小家 发表于 2023-9-1 16:59:30

本帖最后由 STCAI 于 2023-9-2 10:18 编辑

注意:代码里的VID和PID不能随意使用,仅供参考,商用的话请向STC官方申请或自行购买,不然出现任何问题本作者概不负责!

神农鼎 发表于 2023-9-1 17:06:46

感谢冲哥大爱{:4_196:}

autopccopy 发表于 2023-9-1 22:04:57

冲哥威武!{:4_250:}

83

autopccopy 发表于 2023-9-1 22:25:30

临时直接将HEX文件烧写在STC32F最小系统上,在I9+WIN11 的设备管理器中体验成功。。。

不知可否扩展到CDC+HID键盘+HID鼠标? 还是有个数限制? 那CDC+ HID鼠标呢? {:4_174:}

电子DIY小家 发表于 2023-9-3 10:42:29

autopccopy 发表于 2023-9-1 22:25
临时直接将HEX文件烧写在STC32F最小系统上,在I9+WIN11 的设备管理器中体验成功。。。

不知可否扩展到CDC+ ...

CDC+HID键盘+HID鼠标 完全没问题的,只是我这个产品只需要cdc虚拟串口+hid键盘所以只调试了个这部分的代码出来,朋友说需要我才刚好开源了一下的,

马永锋 发表于 2023-10-13 12:08:02

冲哥作品开箱啦

attach://24038.mp4

神农鼎 发表于 2023-10-19 21:47:05

【USB 原理及实战,16课时】,视频教学已完美完成 ,大学标准课程 !
【10月/9号,10月/11号】USB基本原理教学视频, 已上传
【10月/16号的 USB-HID 通信 实战】教学视频超级完美, 已上传
             是对着协议和代码一行一行的讲解,认真听的都说会了
【10月/18号下午的 USB-CDC虚拟串口 实战】教学视频, 已上传
             USB-CDC虚拟串口 / 就是最简单最强大的串口
             是对着协议和代码一行一行的讲解,认真听的都说会了
请帮忙转发给可能需要:从0开始了解 USB 的 同学/同事/老师/研发人员
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=4526&extra=&page=1
=========================================
【CAN 原理及实战,8课时】,教学视频,制作中,后续直接看视频回放

ardua 发表于 2023-10-21 09:16:27

冲哥牛!!!{:4_250:}

gzlai 发表于 2023-11-14 23:33:04

学习学习,谢谢
页: [1] 2 3
查看完整版本: USB_CDC虚拟串口+HID键盘, 只用1个USB口的复合设备