USB论坛-百合电子工作室USB专题站
标题:
版主光盘有段代码不太清楚
[打印本页]
作者:
azhuybz
时间:
2015-9-21 15:29
标题:
版主光盘有段代码不太清楚
之前买了版主一个51板子和一个USB板子,USB板子光盘上有一段代码,感觉不是很清楚:
if (ep_last & D12_SETUPPACKET) { //如果收到了建立包(Setup包)
ControlData.wLength = 0; //传输字节总数清0
ControlData.wCount = 0; //传输字节计数器清0
if(D12_ReadEndpoint(0, sizeof(ControlData.DeviceRequest),req)
!= sizeof(DEVICE_REQUEST) ) {
//从端点0读8个字节失败
D12_SetEndpointStatus(0, 1); //停止控制端点0
D12_SetEndpointStatus(1, 1); //停止控制端点1
bEPPflags.bits.control_state = USB_IDLE; //设置为等待状态
return;
}
......
}// if setup packet
/***** 下面为控制写入的数据阶段 ***************/
else if (bEPPflags.bits.control_state == USB_RECEIVE) { //如果为接收状态
i = D12_ReadEndpoint(0, EP0_PACKET_SIZE,
ControlData.dataBuffer + ControlData.wCount); //从端点0接收数据
ControlData.wCount += i; //统计已接收的字节数
if( i != EP0_PACKET_SIZE || ControlData.wCount >= ControlData.wLength) { //数据接收完毕
bEPPflags.bits.setup_packet = 1;
//通知control_handler()处理Setup包
bEPPflags.bits.control_state = USB_IDLE; //设置为等待状态
}
}else
bEPPflags.bits.control_state = USB_IDLE; //设置等待状态
}
如红色部分,上面的是建立数据包,下面的接收数据部分又为建立数据包,两个都为建立数据包?
作者:
baiheee
时间:
2015-9-22 16:29
前面是SETUP阶段,后面是数据阶段
欢迎光临 USB论坛-百合电子工作室USB专题站 (http://usb.baiheee.com/usb_bbs/)
Powered by Discuz! X2.5