我是在做假U盘时,写到向电脑发送配置描述符时出的问题,输出值如下:
读端点0缓冲区8字节。
0x80 0x06 0x00 0x02 0x00 0x00 0xFF 0x00
标准输入请求:获得描述符:配置描述符
写端点0缓冲区16字节。
0x09 0x02 0x20 0x00 0x01 0x01 0x00 0x80 0x32 0x09 0x04 0x00 0x00 0x02 0x08 0x06
USB端点0输入中断。
写端点0缓冲区16字节。
0x05 0x00 0x07 0x05 0x82 0x02 0x40 0x00 0x00 0x07 0x05 0x02 0x02 0x40 0x00 0x00
USB端点0输入中断。
写端点0缓冲区0字节。
USB端点0输入中断。
USB端点0输出中断。
读端点0缓冲区8字节。
0x80 0x06 0x00 0x03 0x00 0x00 0xFF 0x00
标准输入请求:获得描述符:字符串描述符:USB端点0输出中断。
读端点0缓冲区8字节。
0x80 0x06 0x00 0x03 0x00 0x00 0xFF 0x00
标准输入请求:获得描述符:字符串描述符:USB端点0输出中断。
读端点0缓冲区8字节。
0x80 0x06 0x00 0x01 0x00 0x00 0x12 0x00
标准输入请求:获得描述符:设备描述符
写端点0缓冲区16字节。
0x12 0x01 0x10 0x01 0x00 0x00 0x00 0x10 0x88 0x88 0x01 0x00 0x00 0x01 0x01 0x02
USB端点0输入中断。
写端点0缓冲区2字节。
0x03 0x01
USB端点0输入中断。
USB端点0输出中断。
读端点0缓冲区8字节。
0x80 0x06 0x00 0x02 0x00 0x00 0x09 0x00
标准输入请求:获得描述符:配置描述符
写端点0缓冲区9字节。
0x09 0x02 0x20 0x00 0x01 0x01 0x00 0x80 0x32
USB端点0输入中断。
USB端点0输出中断。
读端点0缓冲区8字节。
0x80 0x06 0x00 0x02 0x00 0x00 0x20 0x00
标准输入请求:获得描述符:配置描述符
写端点0缓冲区16字节。
0x09 0x02 0x20 0x00 0x01 0x01 0x00 0x80 0x32 0x09 0x04 0x00 0x00 0x02 0x08 0x06
USB端点0输入中断。
写端点0缓冲区16字节。
0x05 0x00 0x07 0x05 0x82 0x02 0x40 0x00 0x00 0x07 0x05 0x02 0x02 0x40 0x00 0x00
USB端点0输入中断。
写端点0缓冲区0字节。
USB总线挂起。
USB端点0输出中断。
j继续读
j继续读
j继续读
j继续读
读端点0缓冲区2字节。
0x00 0x00
标准输出请求:未知标准请求。
为什么前面没问题,到了最后要挂起的时候出问题了呢?我把配置描述符长度改为非16的整数倍时,就不会出这些问题了,可要是说Ep0SendData()中的pZeroPacket=0时的代码有问题的话,这个错误前面相同的情况就没出现错误,这到底是怎么回事呢?试了好多遍了,就这里出问题,真痛苦。。。 |