关于CH372内置固件用法的疑惑

我将CH372配置为内置固件用法,用BUS HOUND监视数据流, 发现PC没有获取设备描述符的动作, 上来直接获取配置描述符,因为不会贴图, Bus Hound看到的过程简单描述如下: 1,CTL 获取配置描述符,要求长度9 2,DI 长度9 3,CTL 获取配置描述符, 要求长度0x2e 4,DI (实际372应答)长度0x20 5,CTL Set Config

所以疑问: 1, 为何没有获取设备描述符 2, 为何配置描述符长度有误(0x2e), 但查看配置描述符接口描述符端点描述符内容均完整(长度0x20)

1,那是这个软件的问题,实际是数据已经传上去了 2,主机获取描述符的数据长度是完全可以大于设备上传给主机的描述符实际长度,


BUSHOUND并不能抓到USB通讯所有的数据流, 在说了,你显示出来20是因为你的BUSHOUND设置的问题,你把缓冲区设置大点, 还有一种现象是主机要求的数据长度可能多于实际长度,比如报表描述符,一般会是 实际长度+0X40个,但是可以传实际长度. 你的现象是BUSHOUND没设置好


换了两台电脑,且修改了BusHound配置后,终于看到长度对了. 不过还是没看到设备描述符上传, 我希望能看到设备描述符中的VID和PID. 管理员, 能否提供内置固件模式对应的设备描述符?谢谢.


内置固件模式对应的设备描述符与外置固件示例程序中的设备描述符就是一样的


可以发命令获取的到的 ! unsigned char code DevDes[]={ 0x12 //描述符大小 , 0x01 //常数DEVICE , 0x10 //USB规范版本信息 , 0x01 , 0xFF //类别码, , 0x80 //子类别码 , 0x37 //协议码 , 0x08 //端点0的最大信息包大小 , 0x48 //厂商ID , 0x43 , 0x37 //产品ID , 0x55 , 0x00 //设备版本信息 , 0x01 , 0x00 //索引值 , 0x00 , 0x00 , 0x01 //可能配置的数目 , 00 //无意义 , 00 , 00 , 00 , 00 , 00 };


只有登录才能回复,可以选择微信账号登录