找回密码
 立即注册
查看: 152|回复: 15

关于USB-CDC连上电脑如果不开串口会有阻塞现象的疑问

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:114
  • 最近打卡:2025-07-31 20:21:03

14

主题

42

回帖

616

积分

高级会员

积分
616
发表于 2025-7-11 18:39:29 | 显示全部楼层 |阅读模式
在使用USB-CDC串口时,如果连电脑关闭CDC串口的情况下,程序会出现阻塞现象,大概是跑1S停0.5秒左右。不连接电脑重启后就没有该问题。请问大家是否有遇到类似情况,可有办法消除这种状况?谢谢。
使用的擎天柱下的AICUBE配置的代码。见附件程序。

另外提一下,原来的程序USB-CDC时行时不行,把clock.c里面系统时钟分频函分提前到系统时钟选择函数前学感觉问是消失了,每次重启后都能正常进入USB-CDC功能。

另外,不停电下载不能用,不知道为什么。
截图202507111837139895.jpg

07_A7_BOARD_XPT2064ADC.zip

574.11 KB, 下载次数: 6

问渠哪得清如许 唯有源头活水来
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:253
  • 最近打卡:2025-07-31 08:55:10
已绑定手机

78

主题

2294

回帖

5226

积分

荣誉版主

无情的代码机器

积分
5226
发表于 2025-7-12 09:17:52 | 显示全部楼层
1.连电脑关闭CDC串口的情况下,程序会出现阻塞现象,大概是跑1S停0.5秒左右
--这个没复现,当CDC未打开时,发送函数是有一定的超时时间,但是没发现有这么长
楼主如何测的,上传的程序里貌似没发现这部分测试代码
截图202507120915158541.jpg
2.“把clock.c里面系统时钟分频函分提前到系统时钟选择函数前学感觉问是消失了”,以及“不停电下载不能用” 都能复现
--感觉问题集中在CLK_Init,此函数屏蔽后,不停电下载恢复正常,原因还得再看看
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:114
  • 最近打卡:2025-07-31 20:21:03

14

主题

42

回帖

616

积分

高级会员

积分
616
发表于 2025-7-12 11:15:18 | 显示全部楼层
erci*** 发表于 2025-7-12 09:17
1.连电脑关闭CDC串口的情况下,程序会出现阻塞现象,大概是跑1S停0.5秒左右
--这个没复现,当CDC未打开时, ...

1. 阻塞的问题这个程序没写相关测试,在我其它程序里可以看到LEDSMG明显会黑一点时间,跑LED指示灯也可以看出来,是比较明显的。 昨晚我回去用8051U盒子用最新的AICUBE现象会复现。
2. 我怀疑是选用PLL的原因,昨晚我回去使不使用PLL就没这个问题,这个不用CLK_INIT()是一个道理,不初始化时钟就使用默认内部时钟。或许是PLL时钟或者是后面的选择电路哪里有问题导致的。我暂时没用USB-CDC功能了,用的UART,因为我更需要高速PLL时钟来带TFPU和MDU功能。暂时用link-1d代替不停电下载。希望能优化USB-CDC+PLL功能。

点评

看最新版本AiCube更新说明已经修复PLL和自动下载问题 [attachimg]108773[/attachimg]  详情 回复 发表于 2025-7-17 14:08
问渠哪得清如许 唯有源头活水来
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:253
  • 最近打卡:2025-07-31 08:55:10
已绑定手机

78

主题

2294

回帖

5226

积分

荣誉版主

无情的代码机器

积分
5226
发表于 2025-7-17 14:08:51 | 显示全部楼层
Forest*** 发表于 2025-7-12 11:15
1. 阻塞的问题这个程序没写相关测试,在我其它程序里可以看到LEDSMG明显会黑一点时间,跑LED指示灯也可以 ...


看最新版本AiCube更新说明已经修复PLL和自动下载问题
截图202507171407149142.jpg
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:114
  • 最近打卡:2025-07-31 20:21:03

14

主题

42

回帖

616

积分

高级会员

积分
616
发表于 2025-7-17 15:57:35 | 显示全部楼层
erci*** 发表于 2025-7-17 14:08
看最新版本AiCube更新说明已经修复PLL和自动下载问题

那太好了,赞!
另外,上次说那个阻塞的问题,经过更多的测试,我发现是运行printf_usb函数时会卡一下。供参考。
谢谢。

点评

printf_usb函数是USB库内部做了超时处理,以免USB未连接主机无限等待。 可以在程序加逻辑判断,如长时间没主机消息就不再发送。 或者可以试下这个判断打开的函数,未打开跳过发送: https://www.stcaimcu.com/forum  详情 回复 发表于 2025-7-17 16:24
问渠哪得清如许 唯有源头活水来
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:253
  • 最近打卡:2025-07-31 08:55:10
已绑定手机

78

主题

2294

回帖

5226

积分

荣誉版主

无情的代码机器

积分
5226
发表于 2025-7-17 16:24:05 | 显示全部楼层
Forest*** 发表于 2025-7-17 15:57
那太好了,赞!
另外,上次说那个阻塞的问题,经过更多的测试,我发现是运行printf_usb函数时会卡一下。 ...

printf_usb函数是USB库内部做了超时处理,以免USB未连接主机无限等待。

可以在程序加逻辑判断,如长时间没主机消息就不再发送。
或者可以试下这个判断打开的函数,未打开跳过发送:
https://www.stcaimcu.com/forum.p ... 6911&pid=158205

截图202507171623553174.jpg


三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:114
  • 最近打卡:2025-07-31 20:21:03

14

主题

42

回帖

616

积分

高级会员

积分
616
发表于 2025-7-18 10:47:36 | 显示全部楼层
erci*** 发表于 2025-7-17 16:24
printf_usb函数是USB库内部做了超时处理,以免USB未连接主机无限等待。

可以在程序加逻辑判断,如长时间 ...

好的,我去试试。谢谢。
问渠哪得清如许 唯有源头活水来
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:114
  • 最近打卡:2025-07-31 20:21:03

14

主题

42

回帖

616

积分

高级会员

积分
616
发表于 2025-7-19 09:38:37 | 显示全部楼层
erci*** 发表于 2025-7-17 16:24
printf_usb函数是USB库内部做了超时处理,以免USB未连接主机无限等待。

可以在程序加逻辑判断,如长时间 ...

我测试了那个代码,但是我用的是AI8051,所以更换了头文件和USB库,编译能通过但无法连接生成HEX文件。附件是完整代码,请参考。

stc8h_cdc_data_query_demo_测试解决usb函数阻塞问题.zip

90.82 KB, 下载次数: 5

点评

8h和32g的 USB库不通用的,只需要把函数拷贝到你的工程就行。  详情 回复 发表于 2025-7-19 10:15
问渠哪得清如许 唯有源头活水来
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:253
  • 最近打卡:2025-07-31 08:55:10
已绑定手机

78

主题

2294

回帖

5226

积分

荣誉版主

无情的代码机器

积分
5226
发表于 2025-7-19 10:15:39 | 显示全部楼层
Forest*** 发表于 2025-7-19 09:38
我测试了那个代码,但是我用的是AI8051,所以更换了头文件和USB库,编译能通过但无法连接生成HEX文件。附 ...

8h和32g的 USB库不通用的,只需要把函数拷贝到你的工程就行。
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:114
  • 最近打卡:2025-07-31 20:21:03

14

主题

42

回帖

616

积分

高级会员

积分
616
发表于 2025-7-21 11:00:02 | 显示全部楼层
erci*** 发表于 2025-7-19 10:15
8h和32g的 USB库不通用的,只需要把函数拷贝到你的工程就行。

无法连接生成机器码。可能是函数定义不一样,你可以试试我那个代码,看看能否生成机器码。

点评

我下载了呀。你在8H工程里引用32G的USB库用不了的。 [attachimg]109215[/attachimg] [attachimg]109216[/attachimg]  详情 回复 发表于 2025-7-21 12:08
问渠哪得清如许 唯有源头活水来
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-8-1 01:53 , Processed in 0.157149 second(s), 104 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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