查看: 3605|回复: 0

[分享] 【问题解决】i.MX RT1052 SDK2.3 USB_device_cdc_vcom例子数据问题

[复制链接]
  • TA的每日心情
    开心
    2025-7-11 08:53
  • 签到天数: 301 天

    连续签到: 2 天

    [LV.8]以坛为家I

    3942

    主题

    7563

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    40257
    最后登录
    2025-9-10
    发表于 2021-7-26 16:24:06 | 显示全部楼层 |阅读模式
    问题标题:i.MX RT1052 SDK2.3 USB_device_cdc_vcom例子数据不能一直接收?

    问题详情:i.MX RT1052usb_device_cdc_vcom例子里的APPTask函数里如果usb接收到一次数据,然后不发送数据回去,那么后面就接收不到数据了,串口助手直接就卡死,这可能就是bug。下图是根据官方代码改写为的内容,屏蔽掉 APPTask里面的代码,就会出现问题。
    11.png
    问题解决:
    发现在USB_DeviceCdcVcomCallback  event=kUSB_DeviceCdcEventSendResponse的时候,有个:
    1.        /* User: addyour own code for send complete event */
    2.        /* Schedulebuffer for next receive event */
    3.     error =USB_DeviceCdcAcmRecv(handle, USB_CDC_VCOM_BULK_OUT_ENDPOINT, s_currRecvBuf,
    4.       g_UsbDeviceCdcVcomDicEndpoints[0].maxPacketSize);
    复制代码

    用于准备下次接收的代码。
    所以你可以把你APPTask里面,接收到数据之后,加一个准备下次接收的代码,如下:
    1. <div align="left"><div align="left">        if ((0 != s_recvSize) &&(USB_CANCELLED_TRANSFER_LENGTH != s_recvSize))</div><div align="left">        {</div><div align="left">            int32_t i;</div><div align="left">            /* Copy Buffer to Send Buff */</div><div align="left">            for (i = 0; i < s_recvSize; i++)</div><div align="left">            {</div><div align="left">                s_currSendBuf[s_sendSize++] =s_currRecvBuf;</div><div align="left">            }</div><div align="left">            s_recvSize = 0;</div><div align="left">            s_sendSize = 0;//kerryadd</p><p><em>//Kerry add, used for Schedule buffer for nextreceive event</em></div><div align="left">                error =USB_DeviceCdcAcmRecv(s_cdcVcom.cdcAcmHandle, USB_CDC_VCOM_BULK_OUT_ENDPOINT,</div><div align="left">s_currRecvBuf,                                  g_UsbDeviceCdcVcomDicEndpoints[0].maxPacketSize);}</div></div>
    复制代码
    其实这个还是和用户实际的代码功能设计有关,官方代码只是给了一个参考。
    qiandao qiandao
    回复

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-10 22:10 , Processed in 0.082294 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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