完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本人u***开发方面的菜鸟,最近负责cyu***3014的上位机编程,对于固件的配置完全不熟,这几天利用官方提供的cyu***API进行读写u***测试,现在遇到一个问题无法解决,想求教一下xferdata(buf,len)这个函数用于u***数据上行时len的大小有限制吗,本人利用这个函数下行数据时len大小可以从1开始,而上行时的len必须设为16384的整数倍。否则就会出错,u*** control centrol显示错误代码为997
我利用u***在FPGA和上位机之间进行通信,上位机读USB的数据量不定,最少是一个字节,最多有上G的数据,但是xferdata()函数的len参数随意设置回出错,请问这是硬件配置的问题吗,可是上位机往USB写又可以随意设置,谁能解释一下呢,非常感激!!! |
|
相关推荐
4 个讨论
|
|
我做过测试,FPGA持续往USB里发送一组递增的数,上位机调用xferdata()函数时,当len=1024的整数倍时可以正确读取USB数据,当len为其他的数时xferdata函数的返回值一直是false。在实际应用中,要求FPGA返回多少数上位机都能从USB里读出来,所以不知道有什么好的办法。你说的read()函数,我看了cyu***.net手册,上面介绍read()函数只在cycontrolEndPoint里,而且read()函数貌似也是调用xferdata()函数。 |
|
|
|
|
|
/////////////////////定义
USBDeviceList^ user1; CyUSBDevice^ myDev; CyBulkEndPoint^ inendpoint; CyBulkEndPoint^ outendpoint; Int32 rd_bytes; bool success; /////////////////////////初始化 user1 = gcnew USBDeviceList(CyUSB::CyConst:EVICES_CYUSB); myDev =dynamic_cast if (myDev!=nullptr) MessageBox::Show(L"link success"); else MessageBox::Show(L"no device"); bool blssFast = myDev->bSuperSpeed; bool blhsFast = myDev->bHighSpeed; if(blhsFast) { textBox3->Text=L"USB is working at u***2.0 mode!"; } else if (blssFast) { textBox3->Text=L"USB is working at u***3.0 mode!";} //////////////////////////////////////////////////// inendpoint=dynamic_cast if((inendpoint!=nullptr)&&(inendpoint->Attributes==2)) { if (textBox1->Text=="") { MessageBox::Show(L"lease input the bytes you want to read"); return; } else { rd_bytes=Convert::ToInt32(textBox1->Text); rd_buffer=gcnew array success=inendpoint->XferData(rd_buffer,rd_bytes); } 现象是只有rd_bytes是1024的整数倍时success=1,其他情况success都是0,会不会是因为USB3.0一次传输的最小单位是1024字节,我对固件配置不熟,不知道能不能把一次传输的数据量大小改小一些 } |
|
|
|
|
|
按你的说法,应该是固件凑够了1024才传上来一次。长度小于1024时,固件没传,超时死那了,返回0。 分析固件的行为,应该首先采用CyConsole(USB2.0用这个),用它读不是1024的数据长度,如果它读不出来,上层软件再忙活也白扯。如果确实是如此,就该问下固件工程师,下边是怎么工作的。 还有,cypress有c#的例子,在它的基础上改一下,如果它也不工作,说明固件不支持。 读数据的时候可以试试下面的写法,看看ret返回1还是0,实际bytes返回多少? Long bytes = 1024 * N; BOOL ret = XferData(buffer, &bytes); |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
754个成员聚集在这个小组
加入小组2110 浏览 1 评论
1858 浏览 1 评论
3673 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1791 浏览 6 评论
1540 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
576浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
430浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
440浏览 2评论
390浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
933浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 15:33 , Processed in 1.240793 second(s), Total 47, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号