关于你的BULK传输慢的问题,我认为主要原因应在主机方面;通常若主机软件要求传输数据是较小的长度时,下层的USB驱动不能及时地发出数据包,造成大量的带宽损失。以发送1MB数据举例说明:
方法一: for (i=0;i<16;i++) USB_Bulk_Send(Buffer, 65536); 一次发送调用发送64KB数据
方法二: for (i=0;i<16384;i++) USB_Bulk_Send(Buffer, 64); 一次发送调用只发送64B数据
上述方法一比方法二快很多,你所得出的130KB/s估计是使用方法二,每次只发送64或128或256字节。
至于你把MaxPacket大小设为256也可以用,这绝对是主机USB驱动的BUG,这个问题是出在你的USB HOUND上面。
|