找回密码
 立即注册
查看: 285|回复: 19

虚拟串口复位后会卡死

[复制链接]
已绑定手机

5

主题

18

回帖

65

积分

注册会员

积分
65
发表于 2026-7-7 11:48:38 | 显示全部楼层 |阅读模式
问题复现:


上电后打开虚拟串口,收发正常。
不断电 按下复位键,继续使用虚拟串口,其通信功能失效,发送数据非常卡顿。

目前解决方法:
重新上电复位,收发正常。

目标:
连续 不断电 按下复位键,继续使用虚拟串口 且通信正常。

求助其他方式解决


截图202607071146386572.jpg
回复

使用道具 举报 送花

51

主题

186

回帖

1241

积分

金牌会员

积分
1241
发表于 2026-7-7 12:25:17 | 显示全部楼层
单独使用一块STC的做CDC串口芯片,使用中电源一直保持。主应用系统就当使用其作为一个固定串口。如果整个系统包括CDC串口,使用中较频繁的复位重启(相当频繁拔出和插入),很容易出问题!
回复

使用道具 举报 送花

已绑定手机

5

主题

18

回帖

65

积分

注册会员

积分
65
 楼主| 发表于 2026-7-7 13:31:30 | 显示全部楼层
lg*** 发表于 2026-7-7 12:25
单独使用一块STC的做CDC串口芯片,使用中电源一直保持。主应用系统就当使用其作为一个固定串口。如果整个系 ...

官方这虚拟串口通信本来就有这问题啊?竟然需要用两块芯片
回复

使用道具 举报 送花

865

主题

1万

回帖

2万

积分

管理员

积分
25086
发表于 2026-7-7 13:53:12 | 显示全部楼层
回复

使用道具 举报 送花

已绑定手机

51

主题

2740

回帖

9531

积分

论坛元老

积分
9531
发表于 2026-7-7 13:59:28 | 显示全部楼层
USB初始化前添加以下代码试试:
  1.     RSTFLAG |= 0x04;   //设置硬件复位后需要检测P3.2的状态选择运行区域
  2.     USBCON = 0x00;      //清除USB设置
  3.     USBCLK = 0x00;
  4.     IRC48MCR = 0x00;
复制代码
回复

使用道具 举报 送花

已绑定手机

121

主题

5079

回帖

1万

积分

超级版主

无情的代码机器

积分
11208
发表于 2026-7-7 14:19:09 | 显示全部楼层
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

已绑定手机

74

主题

1003

回帖

3645

积分

论坛元老

业余的DIY玩家

积分
3645
发表于 2026-7-7 16:49:40 | 显示全部楼层
erci*** 发表于 2026-7-7 14:19
https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid=16680&pid=164369
参考这个:

低压复位可以用这个方法么

点评

一样的,只要用到USB或PLL,软复位前都建议先释放相关资源切低速时钟再复位。  详情 回复 发表于 2026-7-7 18:04
业余就玩玩
回复

使用道具 举报 送花

已绑定手机

121

主题

5079

回帖

1万

积分

超级版主

无情的代码机器

积分
11208
发表于 2026-7-7 18:04:53 | 显示全部楼层
狂热*** 发表于 2026-7-7 16:49
低压复位可以用这个方法么

一样的,只要用到USB或PLL,软复位前都建议先释放相关资源切低速时钟再复位。
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

51

主题

186

回帖

1241

积分

金牌会员

积分
1241
发表于 2026-7-7 20:56:20 | 显示全部楼层
用一片(8Pin)作为CDC串口,保存长期通电。至少这是解决当前问题的办法。坚持原来的方案问题又解决不了,那只好不用STC的芯片了!
回复

使用道具 举报 送花

已绑定手机

5

主题

18

回帖

65

积分

注册会员

积分
65
 楼主| 发表于 2026-7-8 08:52:01 | 显示全部楼层
erci*** 发表于 2026-7-7 14:19
https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid=16680&pid=164369
参考这个:

嗯——,即使前置了
RSTFLAG |= 0x04;   //设置硬件复位后需要检测P3.2的状态选择运行区域
USBCON = 0x00;      //清除USB设置
USBCLK = 0x00;
IRC48MCR = 0x00;
以上代码,问题依然存在,usb只是在上电后被识别,此后带电 按键复位,串口依然存在,但看起来并没有被重新识别。
感觉还是复位不彻底,,,,,

点评

和我发的不一样? [attachimg]143370[/attachimg] 用核心板能复现吗?打包发下你的工程我试试?  详情 回复 发表于 2026-7-8 09:00
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-9-19 21:08 , Processed in 0.078593 second(s), 103 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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