OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4938|回复: 1

请教:USB同步方式接收数据时的怪问题

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2020-11-23
在线时间
1 小时
发表于 2021-1-3 19:44:05 | 显示全部楼层 |阅读模式
1金钱
在做一个USB摄像头驱动时,遇到一个怪问题,麻烦高手帮忙指点一下,谢谢
在刚开始调试时用USBH_IsocReceiveData接收数据后,再输出调试信息,再用USBH_LL_GetLastXferSize取接收数据的大小时能正常返回,但只要将中间的调试输出去掉,USBH_LL_GetXferSize就一直返回0了
代码如下:
    volatile uint8_t tmp_packet_framebuffer[UVC_RX_FIFO_SIZE_LIMIT]={0};
    USBH_IsocReceiveData(phost,
                           (uint8_t *) tmp_packet_framebuffer,
                            VIDEO_Handle->camera.EpSize,
                            VIDEO_Handle->camera.Pipe);

    USBH_DbgLog("ISO1 %02x \t%3s\t\t%02x %02x %02x %02x %02x %02x %02x %02x - %02x %02x %02x %02x %02x %02x %02x %02x",
                                                                                VIDEO_Handle->camera.Pipe,
                                                                                "IN",
                                                                                tmp_packet_framebuffer[0],
                                                                                tmp_packet_framebuffer[1],
                                                                                tmp_packet_framebuffer[2],
                                                                                tmp_packet_framebuffer[3],
                                                                                tmp_packet_framebuffer[4],
                                                                                tmp_packet_framebuffer[5],
                                                                                tmp_packet_framebuffer[6],
                                                                                tmp_packet_framebuffer[7],
                                                                                tmp_packet_framebuffer[8],
                                                                                tmp_packet_framebuffer[9],
                                                                                tmp_packet_framebuffer[10],
                                                                                tmp_packet_framebuffer[11],
                                                                                tmp_packet_framebuffer[12],
                                                                                tmp_packet_framebuffer[13],
                                                                                tmp_packet_framebuffer[14],
                                                                                tmp_packet_framebuffer[15]
                                                                                );

    volatile uint32_trxlen = USBH_LL_GetLastXferSize(phost, VIDEO_Handle->camera.Pipe);

正常时输出:
DEBUG : ISO1 02          IN             0c 8e 8a 96 17 17 a0 2c - 29 17 1b 07 96 97 98 99
DEBUG : VIDEO_STATE_DATA_IN, rxlen : 1d0h
video_stream_process, size : 1d0h, total_packet : 7ah
DEBUG : ISO1 02          IN             0c 8d bd 50 3a 17 da 50 - 3a 17 31 07 ff d8 ff db
DEBUG : VIDEO_STATE_DATA_IN, rxlen : 220h
video_stream_process, size : 220h, total_packet : 7bh
EOF of Frame : 5 h


出问题的输出:
DEBUG : VIDEO_STATE_DATA_IN, rxlen : 0h
video_stream_process, size : 0h, total_packet : cbh
DEBUG : VIDEO_STATE_DATA_IN, rxlen : 0h
video_stream_process, size : 0h, total_packet : cch


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2021-1-5 01:44:34 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-3-1 05:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表