UFI
命令在执行时出现错误,需要对对应的端口进行复位处理,代码如下:
/**
* ED
数据区数据初始化
* @param edType ED
的类型,包括
IN
和
OUT
两种情况
*/
short
bulkEDReset(
BYTE
edType)
{
BYTE
toggle;
switch
(edType)
{
case
ED_OUT:
//
复位用于发送数据的
ED
memset
(&bulkEd[0], 0,
sizeof
(bulkEd[0]));
break
;
case
ED_IN:
//
复位用于接收数据的
ED
toggle = usbGetEdToggle(bulkEd[1]);
memset
(&bulkEd[1], 0,
sizeof
(bulkEd[1]));
if
(toggle == 0)
bulkEd[1].
HeadP
|= 0x2;
break
;
default
:
return
-1;
break
;
}
return
0;
}
/**
*
批量读端口复位
*/
short
usbClearBulkIn(
void
)
{
unsigned
char
port;
bulkEDReset(ED_IN);
port = funUsbGetBulkInPort();
usbClearFeature(0x02, port | 0x80);
return
0;
}
/**
*
批量写端口复位
*/
short
usbClearBulkOut(
void
)
{
unsigned
char
port;
bulkEDReset(ED_OUT);
port = funUsbGetBulkOutPort();
usbClearFeature(0x02, port);
return
0;
}
|
本文转自 tywali 51CTO博客,原文链接:http://blog.51cto.com/lancelot/320848,如需转载请自行联系原作者