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条评论)
登录后参与讨论