[RISC-V MCU 创新应用比赛] CH32V307 修改usb例程,出现两个设备

[复制链接]
2177|2
 楼主| 瞎折腾 发表于 2023-9-17 11:47 | 显示全部楼层 |阅读模式
利用CH32V307的例程修改了配置描述符,结果插到usb上识别是两个一个样的VID和PID的设备,一个用libusb安装了驱动,想知道哪里出错了,为啥是两个名字一样的设备!
  1. const uint8_t  MyDevDescr[ ] =
  2. {
  3.     0x12,       // bLength
  4.     0x01,       // bDescriptorType (Device)
  5.     0x00, 0x02, // bcdUSB 2.00
  6.     0x00,       // bDeviceClass
  7.     0x00,       // bDeviceSubClass
  8.     0x00,       // bDeviceProtocol
  9.     DEF_USBD_UEP0_SIZE,   // bMaxPacketSize0 64
  10.     (uint8_t)DEF_USB_VID, (uint8_t)(DEF_USB_VID >> 8),  // idVendor 0x1A86
  11.     (uint8_t)DEF_USB_PID, (uint8_t)(DEF_USB_PID >> 8),  // idProduct 0x5537
  12.     DEF_IC_PRG_VER, 0x00, // bcdDevice 0.01
  13.     0x01,       // iManufacturer (String Index)
  14.     0x02,       // iProduct (String Index)
  15.     0x03,       // iSerialNumber (String Index)
  16.     0x01,       // bNumConfigurations 1
  17. };
  1. const uint8_t  MyCfgDescr_HS[ ] =
  2. {
  3.     /* Configure descriptor */
  4.     0x09, 0x02, 0x30, 0x00, 0x02, 0x01, 0x00, 0x80, 0x32,

  5.     /* Interface 0 (CDC) descriptor */
  6.     0x09, 0x04, 0x00, 0x00, 0x01, 0xff, 0x02, 0x01, 0x00,

  7.     /* Interrupt upload endpoint descriptor */
  8.     0x07, 0x05, 0x83, 0x03, (uint8_t)DEF_USB_EP3_FS_SIZE, (uint8_t)( DEF_USB_EP3_FS_SIZE >> 8 ), 0x01,

  9.     /* Interface 1 (data interface) descriptor */
  10.     0x09, 0x04, 0x01, 0x00, 0x02, 0xff, 0x00, 0x00, 0x00,

  11.     /* Endpoint descriptor */
  12.     0x07, 0x05, 0x02, 0x02, (uint8_t)DEF_USB_EP2_HS_SIZE, (uint8_t)( DEF_USB_EP2_HS_SIZE >> 8 ), 0x00,

  13.     /* Endpoint descriptor */
  14.     0x07, 0x05, 0x82, 0x02, (uint8_t)DEF_USB_EP2_HS_SIZE, (uint8_t)( DEF_USB_EP2_HS_SIZE >> 8 ), 0x00,
  15. };
这是在SinulateCDC项目基础上修改的。
215816506768700fcb.png
没安装驱动的时候,出现两个 usb serial ,这个usb serial是芯片内的名字
LIzs6 发表于 2023-9-18 11:01 | 显示全部楼层
看你的代码,设备描述符配置中,设备类型是0x00,表示所有接口在配置描述符里,并且所有接口是独立的。你在配置描述符里面又配置了两个接口,会不会因为这个识别成两个设备,你可以在配置描述符里面删除一个接口配置,或将设备描述符设备类型描述改为非0值看一下,看是否还是两个设备。
 楼主| 瞎折腾 发表于 2023-9-18 11:14 | 显示全部楼层
已经解决了,我把配置描述第一行的那个bNuminterfaces改成了0x01现在可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

256

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部