找回密码
 立即注册
楼主: king***

stc32g USB CDC 如何单纯的发数据

[复制链接]
  • TA的每日心情
    郁闷
    2024-3-28 10:05
  • 签到天数: 2 天

    [LV.1]初来乍到

    7

    主题

    16

    回帖

    107

    积分

    注册会员

    积分
    107
     楼主| 发表于 2023-6-9 15:37:29 | 显示全部楼层
    电子DIY小家 发表于 2023-6-9 10:15
    cdc串口发数据之前可以判断一下当前的usb状态,等他空闲了再发,实测这样一点问题没有,贼好用。

    谢谢。这个方法确实可以。官方对lib库也不出一个说明。

    点评

    估计官方觉得这个太简单了吧~ 不过确实这个看一眼usb.h文件,按照stc的风格的话,有接受完成的标志位的话,必然也有发送完成的标志的,找到那个变量名就好了。  详情 回复 发表于 2023-6-10 13:48
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    4 天前
  • 签到天数: 90 天

    [LV.6]常住居民II

    38

    主题

    986

    回帖

    6773

    积分

    荣誉版主

    冲哥视频教程和各种开源资料QQ交流群884047237,可群

    积分
    6773
    QQ
    发表于 2023-6-10 13:48:41 | 显示全部楼层
    kingmacth 发表于 2023-6-9 15:37
    谢谢。这个方法确实可以。官方对lib库也不出一个说明。

    估计官方觉得这个太简单了吧~ 不过确实这个看一眼usb.h文件,按照stc的风格的话,有接受完成的标志位的话,必然也有发送完成的标志的,找到那个变量名就好了。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-20 22:27
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    2

    主题

    31

    回帖

    102

    积分

    注册会员

    积分
    102
    发表于 2024-3-7 11:28:03 | 显示全部楼层
    遇到了同样的问题,
    在freeRTOS中 ,的usb_cdc.c中,

    1、只能在接收到上位机的数据后才能通过USB发送数据到上位机,
    2、或者在上位机串口工具打开串口连接后,才能通过USB发送数据到上位机,一旦关闭上位机的串口工具,STC32G12K128 就会停止运行,我有另外的独立线程控制的板子上的一个LED灯
      表现为,打开串口工具并打开串口连接,这个灯就能正常闪烁,但是关闭上位机的串口连接,这个灯就不闪烁了,这是不正常的

    请问大佬 ,这是何故?何解?

        while(1)
        {
            EUSB = 1;
            if(DeviceState != DEVSTATE_CONFIGURED)  //等待USB完成配置
                continue;

            if (bUsbOutReady)
            {
                usb_OUT_done();    //接收应答(固定格式)
                
                printf("OutNumber=0x%X\r\n",OutNumber);  //使用 printf 函数打印接收数据长度

                USB_SendData(UsbOutBuffer,OutNumber);    //发送数据缓冲区,长度
            }

            vTaskDelay(1);
        }
       
        vTaskDelete(NULL);
    }  

    点评

    [attachimg]37316[/attachimg] 写了给闪灯任务 与USB任务 互不影响 你下载到试验箱测试一下  详情 回复 发表于 2024-3-7 14:58
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    551

    主题

    9302

    回帖

    1万

    积分

    管理员

    积分
    14055
    发表于 2024-3-7 11:52:02 | 显示全部楼层
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    3 天前
  • 签到天数: 142 天

    [LV.7]常住居民III

    29

    主题

    559

    回帖

    2118

    积分

    荣誉版主

    积分
    2118
    发表于 2024-3-7 14:58:06 | 显示全部楼层
    本帖最后由 gentleman 于 2024-3-7 14:59 编辑
    dongchengya 发表于 2024-3-7 11:28
    遇到了同样的问题,
    在freeRTOS中 ,的usb_cdc.c中,

    截图202403071452125505.jpg

    写了个闪灯任务

    与USB任务 互不影响


    STC-ISP 中开关串口  发送数据, 闪灯任务依旧运行

    你下载到试验箱测试一下


    FreeRTOS-STC32G-USB-CDC.zip

    327.69 KB, 下载次数: 9

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-20 22:27
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    2

    主题

    31

    回帖

    102

    积分

    注册会员

    积分
    102
    发表于 2024-3-7 20:32:37 来自手机 | 显示全部楼层
    明天试一下
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-20 22:27
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    2

    主题

    31

    回帖

    102

    积分

    注册会员

    积分
    102
    发表于 2024-3-7 20:33:56 来自手机 | 显示全部楼层
    我是把Freertos函数版本  和Freertos-cdc整合在一起做成一个工程
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-20 22:27
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    2

    主题

    31

    回帖

    102

    积分

    注册会员

    积分
    102
    发表于 2024-3-7 20:40:02 来自手机 | 显示全部楼层
    我想把Freertos库函数版本  里的stc-usb-cdc-32g.lib  换成后来独立发布的更新的stc-usb-cdc-32.lib  但是会报错无法编译,后来发布的这个usb-cdc库文件的命名中少了一个字母g,  这两个相同功能的usb--cdc库文件 居然不能通用,不兼容一样,何故?何解?
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-20 22:27
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    2

    主题

    31

    回帖

    102

    积分

    注册会员

    积分
    102
    发表于 2024-3-7 20:45:59 来自手机 | 显示全部楼层
        while(1)
        {
            EUSB = 1;
            if(DeviceState != DEVSTATE_CONFIGURED)  //等待USB完成配置
                continue;

            if (bUsbOutReady)
            {
                usb_OUT_done();    //接收应答(固定格式)
                
                printf("OutNumber=0x%X\r\n",OutNumber);  //使用 printf 函数打印接收数据长度

                USB_SendData(UsbOutBuffer,OutNumber);    //发送数据缓冲区,长度
            }
    printf("问题就在这一行,增加这一行就无法正常运行");
            vTaskDelay(1);
        }
       
        vTaskDelete(NULL);
    }  
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-20 22:27
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    2

    主题

    31

    回帖

    102

    积分

    注册会员

    积分
    102
    发表于 2024-3-7 20:48:04 来自手机 | 显示全部楼层
    简单一点来说,就是:在官方代码里,增加下面的这一行就,不能正常输出这一串字符,

    printf("问题就在这一行,增加这一行就无法正常运行");
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-3 18:09 , Processed in 0.074151 second(s), 71 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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