请选择 进入手机版 | 继续访问电脑版
查看: 2435|回复: 9

[求助] 关于rt1052sdk2.3 usb_device_cdc_vcom例子

[复制链接]
  • TA的每日心情

    2021-1-22 17:33
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    30

    主题

    85

    帖子

    0

    高级会员

    Rank: 4

    积分
    640
    最后登录
    2023-12-12
    发表于 2021-1-21 09:53:41 | 显示全部楼层 |阅读模式
    本帖最后由 ccxzjz 于 2021-1-21 10:01 编辑

    请教大家,rt1052 usb_device_cdc_vcom例子里的APPTask函数里如果usb接收到一次数据,接着不发送一次数据回去,那么后面都接收不到了,串口助手直接就卡死,这个是bug?大家有空的话帮我测一下
    1.png
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情

    2021-1-22 17:33
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    30

    主题

    85

    帖子

    0

    高级会员

    Rank: 4

    积分
    640
    最后登录
    2023-12-12
     楼主| 发表于 2021-1-21 15:24:36 | 显示全部楼层
    自己顶顶顶
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    655

    主题

    6311

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    19924
    最后登录
    2024-4-19
    发表于 2021-1-22 17:07:03 | 显示全部楼层
    楼主你好,你意思是把官方的代码改成你图片那样,也就是屏蔽掉 APPTask里面的:
                if (s_sendSize)
                {
                    uint32_t size = s_sendSize;
                    s_sendSize    = 0;

                    error =
                        USB_DeviceCdcAcmSend(s_cdcVcom.cdcAcmHandle, USB_CDC_VCOM_BULK_IN_ENDPOINT, s_currSendBuf, size);
                    if (error != kStatus_USB_Success)
                    {
                        /* Failure to send Data Handling code here */
                    }
                }
    就会出问题?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-1-22 17:33
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    30

    主题

    85

    帖子

    0

    高级会员

    Rank: 4

    积分
    640
    最后登录
    2023-12-12
     楼主| 发表于 2021-1-22 17:27:47 | 显示全部楼层
    小恩GG 发表于 2021-1-22 17:07
    楼主你好,你意思是把官方的代码改成你图片那样,也就是屏蔽掉 APPTask里面的:
                if (s_sendSiz ...

    对,这样我收了一次数据后就有问题了,麻烦您测一下
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    655

    主题

    6311

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    19924
    最后登录
    2024-4-19
    发表于 2021-1-25 14:49:03 | 显示全部楼层
    本帖最后由 小恩GG 于 2021-1-25 14:50 编辑

    楼主你好!
    今天我分析了下,发现在USB_DeviceCdcVcomCallback  event=kUSB_DeviceCdcEventSendResponse的时候,有个:
                        /* User: add your own code for send complete event */
                        /* Schedule buffer for next receive event */
                        error = USB_DeviceCdcAcmRecv(handle, USB_CDC_VCOM_BULK_OUT_ENDPOINT, s_currRecvBuf,
                                                     g_UsbDeviceCdcVcomDicEndpoints[0].maxPacketSize);
    用于准备下次接收的代码。
    所以你可以把你APPTask里面,接收到数据之后,加一个准备下次接收的代码,如下:



    1. <p>        if ((0 != s_recvSize) && (USB_CANCELLED_TRANSFER_LENGTH != s_recvSize))
    2.         {
    3.             int32_t i;

    4.             /* Copy Buffer to Send Buff */
    5.             for (i = 0; i < s_recvSize; i++)
    6.             {
    7.                 s_currSendBuf[s_sendSize++] = s_currRecvBuf[i];
    8.             }
    9.             s_recvSize = 0;
    10.             s_sendSize = 0;//kerry add</p><p><em>//Kerry add, used for Schedule buffer for next receive event</em>
    11.                 error = USB_DeviceCdcAcmRecv(s_cdcVcom.cdcAcmHandle, USB_CDC_VCOM_BULK_OUT_ENDPOINT, s_currRecvBuf,
    12.                                                                  g_UsbDeviceCdcVcomDicEndpoints[0].maxPacketSize);

    13.         }</p>
    复制代码



    下面是测试结果。
    1. 发‘ a
    1.jpg
    2. run起来,继续发b
    2.jpg
    从测试结果来看,已经没有block'了,其实这个还是和用户实际的代码功能设计有关,官方代码只是给了一个参考。

    你那边可以测试看看。



    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-1-22 17:33
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    30

    主题

    85

    帖子

    0

    高级会员

    Rank: 4

    积分
    640
    最后登录
    2023-12-12
     楼主| 发表于 2021-1-25 15:38:07 | 显示全部楼层
    非常感谢,这样就可以一直接收了
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    655

    主题

    6311

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    19924
    最后登录
    2024-4-19
    发表于 2021-1-25 16:36:22 | 显示全部楼层
    ccxzjz 发表于 2021-1-25 15:38
    非常感谢,这样就可以一直接收了

    不用客气,楼主后续在使用NXP产品的过程中遇到任何的技术问题,欢迎通过官方的三大支持渠道询问。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-1-22 17:33
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    30

    主题

    85

    帖子

    0

    高级会员

    Rank: 4

    积分
    640
    最后登录
    2023-12-12
     楼主| 发表于 2021-1-26 08:22:25 | 显示全部楼层
    小恩GG 发表于 2021-1-25 16:36
    不用客气,楼主后续在使用NXP产品的过程中遇到任何的技术问题,欢迎通过官方的三大支持渠道询问。
    ...

    还有哪些渠道呢,用rt1052还有一些其他问题
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    655

    主题

    6311

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    19924
    最后登录
    2024-4-19
    发表于 2021-1-26 17:02:03 | 显示全部楼层
    ccxzjz 发表于 2021-1-26 08:22
    还有哪些渠道呢,用rt1052还有一些其他问题

    1. 官方论坛: https://community.nxp.com/
    2. 官网case渠道:
    1). 打开下面的链接,点击页面中间蓝色的字:进入服务申请
    https://www.nxp.com.cn/support/support:SUPPORTHOME
    2).如果您尚未登录,会要求您登录,登录后回来到一个英文页面。
    点击页面右侧的“create new tickets”。然后按照提示一步步提交即可。

    1,2均需要使用英文书写方式,会有来自国内外的NXP技术工程师帮忙解答你的问题,通常48小时之内会给出回复。

    3.中文论坛,与非网论坛:https://www.nxpic.org.cn/module/forum/forum.php
    也是目前我们唯一的一个中文官方支持外部论坛。
    每天会有专门的工程师在线帮忙解答相关技术问题。
    1,2也可以用中文。
    如果有RT1050的问题,欢迎到官方提问,另外,建议你官网那边提问使用你公司邮箱,那样我们case等级较高,我们工程师可以分配较多时间帮你。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    6

    帖子

    0

    注册会员

    Rank: 2

    积分
    51
    最后登录
    2021-11-2
    发表于 2021-6-6 16:00:48 | 显示全部楼层
    小恩GG 发表于 2021-1-26 17:02
    1. 官方论坛: https://community.nxp.com/
    2. 官网case渠道:
    1). 打开下面的链接,点击页面中间蓝色 ...

    您好,如果每次都需要在收数据的回调之外进行这样的操作来保证下一次的接收,出于性能考虑,是否还有其它的方法呢?
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-19 09:55 , Processed in 0.133714 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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