原创 圈圈教你玩USB--3.11 配置描述符集合的实现以及返回(校错)

2011-5-3 17:09 2242 7 7 分类: MCU/ 嵌入式

attachment download之所以出现了上一篇所述的错误,原来发现错在此处:


void UsbEp0Out(){



if(D12ReadEndpointLastStatus(0)&0x01==0x01){


D12ReadEndpointBuffer(0,16,Buffer);


D12AcknowledgeSetup();


应该改为


if(D12ReadEndpointLastStatus(0)&0x20){


实际上,我们可以从下面的调试信息可以看出:


USB总线复位。
USB总线挂起。
USB总线挂起。
USB总线复位。
USB总线复位。
端点0输出最后的传输状态:0x21
0-0x08 '
0x80 0x06 0x00 0x01 0x00 0x00 0x40 0x00
0-0x10
0x12 0x01 0x10 0x01 0x00 0x00 0x00 0x10 0x88 0x88 0x01 0x00 0x00 0x01 0x01 0x02
端点1输出最后的传输状态:0x41
0-0x02
0x03 0x01
USB总线复位。
端点0输出最后的传输状态:0x21
0-0x08 '
0x00 0x05 0x0A 0x00 0x00 0x00 0x00 0x00
0x0A
0-0x00
端点1输出最后的传输状态:0x41
端点0输出最后的传输状态:0x21
0-0x08 '
0x80 0x06 0x00 0x01 0x00 0x00 0x12 0x00
0-0x10
0x12 0x01 0x10 0x01 0x00 0x00 0x00 0x10 0x88 0x88 0x01 0x00 0x00 0x01 0x01 0x02
端点1输出最后的传输状态:0x41
0-0x02
0x03 0x01
端点1输出最后的传输状态:0x01
端点0输出最后的传输状态:0xA1
0-0x08 '
0x80 0x06 0x00 0x02 0x00 0x00 0x09 0x00
0-0x09
0x09 0x02 0x22 0x00 0x01 0x01 0x00 0x80 0x32
端点1输出最后的传输状态:0x41
端点0输出最后的传输状态:0xA1
0-0x08 '
0x80 0x06 0x00 0x03 0x00 0x00 0xFF 0x00
0-0x04
0x04 0x03 0x09 0x04
端点1输出最后的传输状态:0x41
端点0输出最后的传输状态:0xA1
0-0x08 '
0x80 0x06 0x03 0x03 0x09 0x04 0xFF 0x00
0-0x10
0x16 0x03 0x32 0x00 0x30 0x00 0x31 0x00 0x31 0x00 0x2D 0x00 0x30 0x00 0x35 0x00
端点1输出最后的传输状态:0x41
0-0x06
0x2D 0x00 0x30 0x00 0x32 0x00
端点1输出最后的传输状态:0x01
端点0输出最后的传输状态:0xA1
0-0x08 '
0x80 0x06 0x00 0x02 0x00 0x00 0xFF 0x00
0-0x10
0x09 0x02 0x22 0x00 0x01 0x01 0x00 0x80 0x32 0x09 0x04 0x00 0x00 0x01 0x03 0x01
端点1输出最后的传输状态:0x41
0-0x10
0x02 0x00 0x09 0x21 0x10 0x01 0x21 0x01 0x22 0x01 0x00 0x07 0x05 0x81 0x03 0x10
端点1输出最后的传输状态:0x01
0-0x02
0x00 0x0A
端点1输出最后的传输状态:0x41
端点0输出最后的传输状态:0xA1
0-0x08 '
0x80 0x06 0x00 0x03 0x00 0x00 0xFF 0x00
0-0x04
0x04 0x03 0x09 0x04
端点1输出最后的传输状态:0x41
端点0输出最后的传输状态:0xA1
0-0x08 '
0x80 0x06 0x02 0x03 0x09 0x04 0xFF 0x00
0-0x10
0x22 0x03 0x0A 0x30 0x08 0x57 0x08 0x57 0x59 0x65 0x60 0x4F 0xA9 0x73 0x55 0x00
端点1输出最后的传输状态:0x41
0-0x10
0x53 0x00 0x42 0x00 0x0B 0x30 0x4B 0x4E 0x55 0x00 0x53 0x00 0x42 0x00 0x20 0x9F
端点1输出最后的传输状态:0x01
0-0x02
0x07 0x68
端点1输出最后的传输状态:0x41
端点0输出最后的传输状态:0xA1
0-0x08 '
0x80 0x06 0x00 0x03 0x00 0x00 0xFF 0x00
0-0x04
0x04 0x03 0x09 0x04
端点1输出最后的传输状态:0x41
端点0输出最后的传输状态:0xA1
0-0x08 '
0x80 0x06 0x02 0x03 0x09 0x04 0xFF 0x00
0-0x10
0x22 0x03 0x0A 0x30 0x08 0x57 0x08 0x57 0x59 0x65 0x60 0x4F 0xA9 0x73 0x55 0x00
端点1输出最后的传输状态:0x41
0-0x10
0x53 0x00 0x42 0x00 0x0B 0x30 0x4B 0x4E 0x55 0x00 0x53 0x00 0x42 0x00 0x20 0x9F
端点1输出最后的传输状态:0x01
0-0x02
0x07 0x68
端点1输出最后的传输状态:0x41
端点0输出最后的传输状态:0xA1
0-0x08 '
0x80 0x06 0x00 0x01 0x00 0x00 0x12 0x00
0-0x10
0x12 0x01 0x10 0x01 0x00 0x00 0x00 0x10 0x88 0x88 0x01 0x00 0x00 0x01 0x01 0x02
端点1输出最后的传输状态:0x41
0-0x02
0x03 0x01
端点1输出最后的传输状态:0x01
端点0输出最后的传输状态:0xA1
0-0x08 '
0x80 0x06 0x00 0x02 0x00 0x00 0x09 0x00
0-0x09
0x09 0x02 0x22 0x00 0x01 0x01 0x00 0x80 0x32
端点1输出最后的传输状态:0x41
端点0输出最后的传输状态:0xA1
0-0x08 '
0x80 0x06 0x00 0x02 0x00 0x00 0x22 0x00
0-0x10
0x09 0x02 0x22 0x00 0x01 0x01 0x00 0x80 0x32 0x09 0x04 0x00 0x00 0x01 0x03 0x01
端点1输出最后的传输状态:0x41
0-0x10
0x02 0x00 0x09 0x21 0x10 0x01 0x21 0x01 0x22 0x01 0x00 0x07 0x05 0x81 0x03 0x10
端点1输出最后的传输状态:0x01
0-0x02
0x00 0x0A
端点1输出最后的传输状态:0x41
端点0输出最后的传输状态:0xA1
0-0x08 '
0x00 0x09 0x01 0x00 0x00 0x00 0x00 0x00
端点0输出最后的传输状态:0x21
0-0x08 '
0x80 0x06 0x00 0x02 0x00 0x00 0x22 0x00
0-0x10
0x09 0x02 0x22 0x00 0x01 0x01 0x00 0x80 0x32 0x09 0x04 0x00 0x00 0x01 0x03 0x01
USB总线挂起。
所有的传输状态最后以为都是1,所以也使的上一篇的程序有时正确,至于这个状态信息是什么?请听将来分解。


附件为调试程序:

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /2 下一条