野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 24127|回复: 1

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

[复制链接]
发表于 2021-1-3 18:25:52 | 显示全部楼层 |阅读模式
在做一个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



回复

使用道具 举报

 楼主| 发表于 2021-1-3 18:31:55 | 显示全部楼层
板子用的是F429 挑战者
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-25 01:44 , Processed in 0.027357 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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