打印

使用CYAPI中函数进行bulkout传输失败

[复制链接]
1071|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ousj|  楼主 | 2019-10-27 10:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我使用EZ-USB FX2 CY7C68013A进行usb2.0的开发,上位机是MFC程序,使用BeginDataXfer、WaitForXfer、FinishDataXfer向下位机发送2字节数据,但是FinishDataXfer返回false。我使用开发套件里的调试程序CyConsole可以成功发送数据,fpga也接收到了,但是自己写的程序不行。

使用特权

评论回复
沙发
stly| | 2019-10-27 11:03 | 只看该作者

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
板凳
ousj|  楼主 | 2019-10-27 11:06 | 只看该作者
程序如下:
OVERLAPPED outOvLap;
outOvLap.hEvent  = CreateEvent(NULL, false, false,"CYUSB_OUT");
bool bLooping=true;
bool sucess=false;
unsigned char buffer[2];
LONG  length =2;
buffera[0]=0x01;
buffera[1]=0x01;
for (;bLooping;)
{
UCHAR  *outContext = endpt->BeginDataXfer(buffer, length, &outOvLap);
endpt->WaitForXfer(&outOvLap,200);
sucess=endpt->FinishDataXfer(buffer, length, &outOvLap,outContext);
if(sucess) bLooping=false;
}
CloseHandle(outOvLap.hEvent);

使用特权

评论回复
地板
llljh| | 2019-10-27 11:08 | 只看该作者
你这段不是完整程序吧。

另外一定要用异步的方式么?就2个字节用同步和异步区别也不大。。。

使用特权

评论回复
5
dingy| | 2019-10-27 11:10 | 只看该作者
根据官方的异步例子自检一下。。。你的endpt是否获取到设备的端点对象。。发送请求是否构造完整,传输方向是否设置正确,等等。一般可能就是那里没注意到

使用特权

评论回复
6
pengf| | 2019-10-27 11:14 | 只看该作者
我以前用过异步的循环发送512字节,是没问题的。。。

使用特权

评论回复
7
ousj|  楼主 | 2019-10-27 11:19 | 只看该作者
我使用的是ep2 out进行bulk传输,用endpt = USBDevice->EndPointOf(0X02);得到ep2端点(已经检测到不为空),但是传输返回一直是false。同步的也试过了,返回也是false

使用特权

评论回复
8
supernan| | 2019-10-27 11:24 | 只看该作者
你再检查一下硬件,是不是buffer已经满了,发不下去了

使用特权

评论回复
9
houcs| | 2019-10-27 11:29 | 只看该作者
APP发不下去的时候,板子不断电,打开CY的control 用CY的control往下发数据,看看能否发下去

使用特权

评论回复
10
zhaoxqi| | 2019-10-27 11:33 | 只看该作者
估计是环境设置问题

使用特权

评论回复
11
ousj|  楼主 | 2019-10-27 11:36 | 只看该作者
搞定了,呵呵

使用特权

评论回复
12
fyfywgcj| | 2020-8-15 15:16 | 只看该作者

请问怎么搞定的呢

使用特权

评论回复
13
两只袜子| | 2023-12-27 09:47 | 只看该作者
硬件连接是否正确,没有连接不良或线缆损坏。检查目标设备是否正确连接并已上电。

使用特权

评论回复
14
jcky001| | 2023-12-27 09:47 | 只看该作者
配置问题,如波特率、数据位、奇偶校验等。

使用特权

评论回复
15
cr315| | 2023-12-27 09:49 | 只看该作者
驱动或固件问题

使用特权

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

本版积分规则

712

主题

7557

帖子

1

粉丝