每上传8个字节,主机取走之后就产生端点0上传成功的中断给你。 关于地址这部分,375芯片已经在内部做了处理了,对于用户来说不需要考虑地址的问题
问题解决!地址是要设的!!!只是我一开始竟然把usb地址变量设成了局域变量,太悲哀了!
请问hcn,在收到Set configuration命令之后该如何回应? 我参考CH372EVT的程序,向端点0上传了一个长度0,可是这之后就收不到任何请求中断了,一会儿PC机右下角就显示硬件安装失败!是我上传的配置描述符不正确还是其它什么问题? 以下是我的配置描述符: Device Descriptor: bcdUSB: 0x0110 bDeviceClass: 0x08 bDeviceSubClass: 0x06 bDeviceProtocol: 0x50 bMaxPacketSize0: 0x08 (8) idVendor: 0x4348 idProduct: 0x5537 bcdDevice: 0x0001 iManufacturer: 0x00 iProduct: 0x00 iSerialNumber: 0x00 bNumConfigurations: 0x01
ConnectionStatus: DeviceConnected Current Config Value: 0x01 Device Bus Speed: Full Device Address: 0x01 Open Pipes: 4
Endpoint Descriptor: bEndpointAddress: 0x82 Transfer Type: Bulk wMaxPacketSize: 0x0040 (64) bInterval: 0x00
Endpoint Descriptor: bEndpointAddress: 0x02 Transfer Type: Bulk wMaxPacketSize: 0x0040 (64) bInterval: 0x00
Endpoint Descriptor: bEndpointAddress: 0x81 Transfer Type: Interrupt wMaxPacketSize: 0x0008 (8) bInterval: 0x01
Endpoint Descriptor: bEndpointAddress: 0x01 Transfer Type: Interrupt wMaxPacketSize: 0x0008 (8) bInterval: 0x01
真确的流程是: 先上传设备描述符,接着接收地址,在下来就是上传配置描述符,接着就是接收主机发来的配置,在下面可能就是你的一些类描述符的上传了,那你应该在类请求里面做处理
我通过Bus Hound观察,发现Set Config命令处理是正确的,然而紧接着主机又向CH375发出两个命令,一个是Set Interface,其后一个是Get Max Lum。可是这两个命令我都检测不到,这是为什么?Get Max Lum这个命令又是什么意思?
这个应该是类请求,你可以参考海量存储的协议,里面有告诉你怎么返回数据
问题就是这两个命令我无法接收到,只能在bus hound中看到,所以就无法进行处理!这是为什么?