打印

进程阻塞

[复制链接]
954|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
langgq|  楼主 | 2015-6-25 21:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用函数 DeviceIoControl (hDeviceR,
     IOCTL_EZUSB_BULK_READ,
         &bulkControlR,
         sizeof(BULK_TRANSFER_CONTROL),
         &buf[0],
         len,
         &nBytes,
         NULL);
读取数据,当读不到数据时,进程就会阻塞,一直等到FIFO中有数据时此函数才能执行完,要不然一直在等待数据,仿佛死机般,而我想让其等待几秒后,就跳出,请问怎样才能实现!
沙发
wangzsa| | 2015-6-25 21:50 | 只看该作者
为什么不用XferData() API进行数据传输呢?

使用特权

评论回复
板凳
zhanglli| | 2015-6-25 21:50 | 只看该作者
对头,再加个TimeOut()限定时间。

使用特权

评论回复
地板
guoyt| | 2015-6-25 21:51 | 只看该作者
没看到过XferData() API啊,能详细说下吗?

使用特权

评论回复
5
hanwe| | 2015-6-25 21:51 | 只看该作者
CyAPI.pdf里有关XferData的说明

使用特权

评论回复
6
zhuww| | 2015-6-25 21:51 | 只看该作者
对的,CyAPI.pdf文件有详细的说明

使用特权

评论回复
7
langgq|  楼主 | 2015-6-25 21:51 | 只看该作者
我们没用CyAPI这个库

使用特权

评论回复
8
wangpe| | 2015-6-25 21:52 | 只看该作者
用个线程实现,可能会好些。

使用特权

评论回复
9
yufe| | 2015-6-25 21:52 | 只看该作者
还可以通过CYAPI数据手册中的一个更改时间的函数,好像是timeout()来更改等待的时间也可以。

使用特权

评论回复
10
langgq|  楼主 | 2015-6-25 21:52 | 只看该作者

多谢楼上,请问CyAPI.lib,CyAPI.h,CyUsb.sys等这些在哪里能下载到?

使用特权

评论回复
11
guoyt| | 2015-6-25 21:53 | 只看该作者
CY7C68013有两个版本的驱动程序

使用特权

评论回复
12
langgq|  楼主 | 2015-6-25 21:53 | 只看该作者
guoyt 发表于 2015-6-25 21:53
CY7C68013有两个版本的驱动程序

使用特权

评论回复
13
wangzsa| | 2015-6-25 21:53 | 只看该作者
早期版本开放源代码但不支持异步通信,可通过多线程模拟异步通信.

使用特权

评论回复
14
wangzsa| | 2015-6-25 21:53 | 只看该作者
最新版本的驱动程序不开放源代码但支持异步通信,可设超时等待时间

使用特权

评论回复
15
zhuww| | 2015-6-25 21:54 | 只看该作者
具体的可去cypress官方网站瞅瞅,有一个驱动开发包.名曰:Cypress Suite USB 3.4.1

使用特权

评论回复
16
yufe| | 2015-6-25 21:54 | 只看该作者
对,CyAPI.lib是基于新版本驱动的

使用特权

评论回复
17
langgq|  楼主 | 2015-6-25 21:54 | 只看该作者
问题已解决,原来我是用的老版本的。

使用特权

评论回复
18
wml101800| | 2015-10-26 09:51 | 只看该作者
那你在上位机方面是怎么处理的?是设置一个等待时间后就退出吗?退出后再重新发送一个控制命令?

使用特权

评论回复
19
dwindy| | 2016-7-7 10:08 | 只看该作者
wml101800 发表于 2015-10-26 09:51
那你在上位机方面是怎么处理的?是设置一个等待时间后就退出吗?退出后再重新发送一个控制命令? ...

我现在是用xferdata(),当碰到阻塞后是重新发送命令。但是重新发送的命令都会超时。
delete掉USBDevice实例,新建一个,再访问同样的endpoint,xferdata()返回也是超时。

使用特权

评论回复
20
dwindy| | 2016-7-7 10:09 | 只看该作者
langgq 发表于 2015-6-25 21:54
问题已解决,原来我是用的老版本的。

楼主,求教xferdata返回false的异常控制是怎么做的?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

932

主题

8762

帖子

1

粉丝