完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
status = OutEndPt->XferData(writeBuffer, Wr_len, Writteninfo);
一开始我认为status代表发送是否成功,为0时代表发送失败,刚开始一直没问题,FPGA端接收也正常,上位机返回值也是1, 最后返回值一直是0,所以我一直认为发送失败了,但是今天在FPGA一端抓波形发现,数据是发送过去了的,请问这个返回值到底是什么意思? 在FPGA端能接收到数据的情况下,这个值可能是0也可能是1!!?? |
|
相关推荐
1个回答
|
|
CY68013是一款由Cypress公司生产的USB通信芯片,用于实现USB通信功能。在您的描述中,您提到了一个上位机发送的返回值,这个返回值是通过调用函数`status = OutEndPt->XferData(writeBuffer, Wr_len, Writteninfo);`得到的。这个函数的作用是将数据从上位机发送到FPGA。
首先,我们来分析一下这个函数的参数: 1. `writeBuffer`:要发送的数据缓冲区。 2. `Wr_len`:要发送的数据长度。 3. `Writteninfo`:一个指针,用于存储实际发送的数据长度。 函数返回的`status`值通常用于表示操作的成功与否。在大多数情况下,返回值为0表示操作失败,非0值表示操作成功。然而,您提到在FPGA端能接收到数据的情况下,返回值可能是0也可能是1。这可能是由于以下原因: 1. **错误的状态码解释**:可能是您对返回值的解释有误。在某些情况下,返回值可能不是简单的0或1,而是一个更复杂的状态码。您需要查阅CY68013的官方文档,了解具体的返回值含义。 2. **硬件或软件问题**:可能是硬件或软件的问题导致返回值不准确。例如,FPGA端的接收逻辑可能存在问题,导致返回值与实际发送情况不符。您需要检查FPGA端的代码和硬件设计,确保它们能够正确处理接收到的数据。 3. **通信协议问题**:可能是通信协议的问题导致返回值不准确。例如,USB通信协议可能在某些情况下导致返回值与实际发送情况不符。您需要检查通信协议的实现,确保它能够正确处理发送和接收的数据。 为了解决这个问题,您可以尝试以下步骤: 1. **查阅文档**:查阅CY68013的官方文档,了解返回值的具体含义和可能的值。 2. **检查代码**:检查您的上位机和FPGA端的代码,确保它们能够正确处理发送和接收的数据。 3. **调试**:使用调试工具(如逻辑分析仪、示波器等)来观察通信过程中的信号,以便找到问题所在。 4. **更新固件/软件**:如果问题是由于硬件或软件的bug导致的,尝试更新固件或软件到最新版本,看看问题是否得到解决。 5. **联系技术支持**:如果问题仍然存在,您可以尝试联系Cypress公司的技术支持,寻求专业的帮助。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教个XMC1404调试串口接收时为什么一直无法接收数据的问题
347 浏览 0 评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
6144 浏览 2 评论
4102 浏览 9 评论
请问TLE5012B_E1000 启动后为什么位置不能正确获取
3628 浏览 9 评论
1229 浏览 8 评论
453浏览 2评论
267浏览 2评论
374浏览 2评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
6159浏览 2评论
如果是打开已有的dave工程,怎么查看这个工程选择的mcu型号?
452浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 16:54 , Processed in 0.504053 second(s), Total 47, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号