使用HidD_GetInputReport函数,发起GET REPORT,包如下:
Device Phase Data Description
24.0 CTL a1 01 03 01 00 00 14 00 GET REPORT
24.0 USTS c0010000 cancele
根据该文:代码
/*** GET_REPORT ***/
else if ((Type_Recipient == (CLASS_REQUEST | INTERFACE_RECIPIENT))
&& RequestNo == GET_REPORT)
{
if (!isReady)//数据未准备好
{
memset(Transceive_Buffer,0,256);
Transceive_Buffer[0]=0x01;
Transceive_Buffer[1]=0x01;
isReady=TRUE;
return USB_NOT_READY;
}
CopyRoutine = CustomHID_GetReport;
}
虽然,立即准备好数据,但好象只要回应了NAK( USB_NOT_READY),驱动就认为超时了!不自动重请求数据,所以准备好的数据也不能读取!只能等再一次调用HidD_GetInputReport!才能读!
不知道香主及其它高手看看问题出在什么地方!您们有试过延迟HID的GET_REPORT请求的代码么!这种延迟请求在什么情况下试用! |