Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在USB中同时使用CDC和HID类?_Usb_Mouse_Hid_Cdc - Fatal编程技术网

在USB中同时使用CDC和HID类?

在USB中同时使用CDC和HID类?,usb,mouse,hid,cdc,Usb,Mouse,Hid,Cdc,我是USB新手 我想在PIC微控制器上实现一个定点设备。USB将用于定点设备和主机之间的通信 我想做以下工作: Device descriptor Config descriptor Interface 0 descriptor Functional descriptors EP descriptor Interface 1 descriptor (CDC) EP descriptors Interface 2 descriptor (HID) EP descriptor

我是USB新手

我想在PIC微控制器上实现一个定点设备。USB将用于定点设备和主机之间的通信

我想做以下工作:

 Device descriptor
 Config descriptor

 Interface 0 descriptor
 Functional descriptors
 EP descriptor

 Interface 1 descriptor (CDC)
 EP descriptors

 Interface 2 descriptor (HID)
 EP descriptors
  • 将Delta发送到主机的HID类驱动程序,这样设备在插入插件后就可以像简单的鼠标一样工作

  • 使用CDC类将其他数据发送到主机,以便在用户空间上运行的应用程序对其进行后处理

  • 我的主要问题是:

    • 实现这一点的最佳方式是什么?我应该定义两个不同的接口吗

    • 我应该定义什么描述符

    我想到了以下几点:

     Device descriptor
     Config descriptor
    
     Interface 0 descriptor
     Functional descriptors
     EP descriptor
    
     Interface 1 descriptor (CDC)
     EP descriptors
    
     Interface 2 descriptor (HID)
     EP descriptors
    

    我应该如何定义接口0描述符之后的“功能描述符”?我是否应该将接口1和2定义为接口0的从属接口?

    我认为必须为两种接口类型实现两个不同的接口。 您需要通过CDC和HID规范来理解接口描述符和(端点描述符)

    我不懂“从接口”这个词。你是说备用接口吗? 您不需要任何备用接口

    多界面示例请参考图片


    谢谢

    您应该实现一个复合设备。买一个Arduino Leonardo,用Arduino鼠标库看看他们是怎么做到的,这可能是个好主意。它同时实现了一个CDC串口和一个鼠标。您可以在Linux计算机上使用
    lsusb
    详细列出其描述符。