打印
[STM32F4]

在断开USB线并重新连接后,使用CubeMX HAL的USB CDC(虚拟串口)功能出现异常。

[复制链接]
466|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
内核558|  楼主 | 2025-6-30 08:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我遇到了一个USB无法正常工作的问题——使用CubeMX HAL库的USB CDC(虚拟串口)在断开USB线并重新连接后无法恢复。
程序在上传到STM32后,会在while(1)主循环中持续向USB端口写入数据。
while (1)  {    /* USER CODE END WHILE */     /* USER CODE BEGIN 3 */    CDC_Transmit_FS(buffer, sizeof(buffer));    HAL_Delay(1000);  }
数据可以正常写出,在Windows 7系统(使用Tera Term和Docklight工具)中可见。
但当我断开USB线缆(OTG FS端口)并重新连接时,Windows会显示"无法识别的USB设备"错误提示。
此时无法接收数据。
必须对STM32F407进行复位操作,才能恢复数据传输和线缆识别功能。
我的问题是
如何使USB设备始终正常工作(在断开并重新连接线缆后),确保能被Windows正确识别并维持数据传输?





使用特权

评论回复
沙发
jcky001| | 2025-7-1 17:00 | 只看该作者
USB设备枚举失败引起的?

使用特权

评论回复
板凳
cr315| | 2025-7-1 18:02 | 只看该作者
中断处理不当可能导致设备状态异常。

使用特权

评论回复
地板
flycamelaaa| | 2025-7-1 19:44 | 只看该作者
HAL库版本不兼容或配置参数如堆栈大小、中断优先级等未正确设置。

使用特权

评论回复
5
sdCAD| | 2025-7-3 16:19 | 只看该作者
检查USBD_CDC_DeInit和USBD_CDC_Init函数

使用特权

评论回复
6
biechedan| | 2025-7-3 22:26 | 只看该作者
检查USB CDC的软件配置              

使用特权

评论回复
7
lihuami| | 2025-7-4 10:20 | 只看该作者
检查USB接口和相关硬件的连接              

使用特权

评论回复
8
yorkbarney| | 2025-7-4 17:01 | 只看该作者
USB线缆质量差或接触不良可能导致重新连接时电压不稳,触发芯片复位或USB模块异常。

使用特权

评论回复
9
pmp| | 2025-7-4 19:22 | 只看该作者
USB设备在插入时需要经历一个枚举过程,如果这个过程出现问题,可能会导致设备无法正常工作。

使用特权

评论回复
10
yorkbarney| | 2025-7-5 22:44 | 只看该作者
USB CDC通常依赖于环形缓冲区来存储发送和接收的数据。

使用特权

评论回复
11
elsaflower| | 2025-7-6 12:33 | 只看该作者
通过拉低USB-PD引脚模拟拔插过程,再重新初始化USB。

使用特权

评论回复
12
xiaoyaodz| | 2025-7-6 17:39 | 只看该作者
可能是由于USB设备的枚举过程或驱动程序的问题导致的

使用特权

评论回复
13
sdlls| | 2025-7-7 12:49 | 只看该作者
在USBD_CDC_If.c文件中实现USB连接和断开的回调函数,以便于进行必要的资源释放和重新分配

使用特权

评论回复
14
jimmhu| | 2025-7-7 14:27 | 只看该作者
通过串口助手发送数据,断开USB线后重新连接,观察数据是否恢复传输

使用特权

评论回复
15
jtracy3| | 2025-7-11 11:01 | 只看该作者
安装STM32 USB CDC驱动,或驱动版本不匹配。

使用特权

评论回复
16
wengh2016| | 2025-7-11 13:47 | 只看该作者
USB上拉电阻缺失              

使用特权

评论回复
17
pixhw| | 2025-7-12 11:33 | 只看该作者
热插拔后未更新,导致数据传输失败。

使用特权

评论回复
18
pl202| | 2025-7-12 14:36 | 只看该作者
USB设备未正确重新初始化              

使用特权

评论回复
19
jonas222| | 2025-7-12 18:15 | 只看该作者
中断或任务调度冲突              

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

26

帖子

0

粉丝