打印

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

[复制链接]
1528|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

粉丝