请教USB上位机编程延时问题

[复制链接]
1881|1
 楼主| tom_2_2 发表于 2014-9-29 16:15 | 显示全部楼层 |阅读模式
UCHAR  *outContext = dlg->OutEndpt->BeginDataXfer(packbuf,PACKLEN_OUT,&outOvLap);
  UCHAR  *inContext = dlg->InEndpt->BeginDataXfer(wstate,PACKLEN_IN,&inOvLap);
Sleep(10);
dlg->OutEndpt->WaitForXfer(&outOvLap,8000);
success_out = dlg->OutEndpt->FinishDataXfer(packbuf, outlen, &outOvLap,outContext);
  if(!success_out)
....
....

在我程序中,下位机是单片机,数据out后要处理几ms时间。如果不加那个Sleep(10),要在传输第二批数据时就会卡在WaitForXfer上面,我把里面8000改大也没用,这个8000应该是等待8秒了,而Sleep(10)只是暂停了10毫秒而已,WaitForXfer等待的时间长了去了反而不行!
这个WaitForXfer()就是起等待作用的,为什么不行?还要另外加Sleep(10)这个延时函数才可以正常通信呢呢?
nethopper 发表于 2014-10-3 18:25 | 显示全部楼层
Sleep (10)  是下位机所需的处理数据的时间,因为WaitForXfer(&outOvLap,8000)不会等待8000毫秒,数据传完即正常返回,若数据在8000毫秒后还没传完,也返回,但返回TIMEOUT。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

319

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部