找回密码
 立即注册
查看: 1909|回复: 14

USB-CDC虚拟串口不能主动向上位机发送数据吗?

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:154
  • 最近打卡:2025-04-30 08:59:29
已绑定手机

11

主题

71

回帖

713

积分

高级会员

积分
713
发表于 2023-3-26 20:25:07 | 显示全部楼层 |阅读模式
USB-CDC虚拟串口不能主动向上位机发送数据吗?必须要上位机先发送数据到单片机后才能发送一条信息到上位机?是这样的吗?
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:245
  • 最近打卡:2025-05-02 16:43:43

49

主题

129

回帖

1365

积分

金牌会员

积分
1365
发表于 2023-3-26 20:27:57 | 显示全部楼层
可以主动发送啊!STC打包了一个发送函数。参考STC提供的程序范例。
  • 打卡等级:常住居民III
  • 打卡总天数:154
  • 最近打卡:2025-04-30 08:59:29
已绑定手机

11

主题

71

回帖

713

积分

高级会员

积分
713
发表于 2023-3-26 21:21:52 | 显示全部楼层
我在官方库函数包中没找到,麻烦你说明一下出处,谢谢。
  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2023-3-26 21:56:12 | 显示全部楼层
  • 打卡等级:常住居民III
  • 打卡总天数:154
  • 最近打卡:2025-04-30 08:59:29
已绑定手机

11

主题

71

回帖

713

积分

高级会员

积分
713
发表于 2023-3-26 23:07:46 | 显示全部楼层
水平太差,一时半会儿看不明白,超级简单的USB-CDC虚拟串口原来一点也不简单,没个个把月盯着看,我看是弄不明白如何下位机主动向上位机发送数据了:L,能否烦劳老大仔细点播一下:handshake
  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2023-3-26 23:18:48 | 显示全部楼层
你明问你对接的销售是如何 30分钟搞定的,或者看如下这集视频搞定
1.png
深圳国芯人工智能有限公司-教学视频 (stcai.com)
  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2023-3-26 23:23:12 | 显示全部楼层
我们销售 从 0启航,第4节课就会 USB-CDC虚拟串口就是最强大最简单的串口了
1.png
深圳国芯人工智能有限公司-教学视频 (stcai.com)
  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

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

积分
8058
QQ
发表于 2023-3-26 23:40:26 | 显示全部楼层
看你的USB.h文件里,有么有如下文件
早期的USB-CDC虚拟串口发送函数是:void usb_IN(BYTE cnt);
最新的USB-CDC虚拟串口发送是:void USB_SendData(BYTE *dat, int size);
当然如果做了串口重定向的话,直接调用printf就可以直接发送了~
  • 打卡等级:常住居民III
  • 打卡总天数:154
  • 最近打卡:2025-04-30 08:59:29
已绑定手机

11

主题

71

回帖

713

积分

高级会员

积分
713
发表于 2023-3-27 00:08:01 | 显示全部楼层
本帖最后由 baigezy 于 2023-3-27 00:09 编辑

void Timer0_Isr(void) interrupt 1
{
    if( ++j >= 1000)
    {
           printf("测试!!!\r\n");
    }        
               
}

void Timer0_Init(void)                //1毫秒@22.1184MHz
{
        AUXR |= 0x80;                        //定时器时钟1T模式
        TMOD &= 0xF0;                        //设置定时器模式
        TL0 = 0x9A;                                //设置定时初始值
        TH0 = 0xA9;                                //设置定时初始值
        TF0 = 0;                                //清除TF0标志
        TR0 = 1;                                //定时器0开始计时
        ET0 = 1;                                //使能定时器0中断
}
定时器一秒发送一次,但是,执行结果是如图,一直不中断的发送测试结果。这是怎么回事
无标题.png
  • 打卡等级:常住居民III
  • 打卡总天数:154
  • 最近打卡:2025-04-30 08:59:29
已绑定手机

11

主题

71

回帖

713

积分

高级会员

积分
713
发表于 2023-3-27 00:13:38 | 显示全部楼层
用void USB_SendData(BYTE *dat, int size)函数发送也是一样的结果
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-5-3 00:52 , Processed in 0.129585 second(s), 103 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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