找回密码
 立即注册
查看: 275|回复: 3

usb做CDC,PC发送设备返回可以,设备主动发送数据卡死,什么原因

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2024-11-14 11:48:54

1

主题

4

回帖

38

积分

新手上路

积分
38
发表于 2024-11-14 11:48:43 | 显示全部楼层 |阅读模式
使用USB_SendData,发送数据,发送前用bUsbInBusy做了判断。但是主动发送给PC,设备就卡死
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-11-14 12:20:40 | 显示全部楼层

我用库函数正常发送数据,看一下哪里不一样
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=9938
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:417
  • 最近打卡:2025-04-30 21:39:09
已绑定手机

34

主题

2096

回帖

2206

积分

荣誉版主

积分
2206
发表于 2024-11-14 13:35:38 | 显示全部楼层
你可以试试中断方式,可能会解决问题
因为查询方式一般需要把查询代码放主循环里面,如果你中断的代码冗长,阻塞了主循环的查询可能会导致发送卡死。
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2024-11-14 11:48:54

1

主题

4

回帖

38

积分

新手上路

积分
38
发表于 2024-12-2 11:10:33 | 显示全部楼层
demo程序里都是先收到数据然后返回。如果主动向PC发送数据就会卡死,不管是用 USB_SendData 这个函数,还是
void CDC_Printf(const char *v,...)
{
        va_list ap;
        va_start(ap,v);
        USB_SendData(UsbInBuffer,vsprintf(UsbInBuffer,v,ap));
        va_end(ap);
} 这段函数,只要是主动发送就会卡死,但是如果上位机连接成功后就能执行,不知道是什么原因
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 13:04 , Processed in 0.138865 second(s), 63 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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