打印
[STM32F0]

USB虚拟串口跑久了会卡死怎么排查?

[复制链接]
100|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
童雨竹|  楼主 | 2025-6-10 07:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
每次跑几个小时就卡住,上位机收不到数据。

使用特权

评论回复
沙发
Clyde011| | 2025-6-10 07:28 | 只看该作者
尝试用CubeMX重新生成USB代码一遍。

使用特权

评论回复
板凳
公羊子丹| | 2025-6-10 07:29 | 只看该作者
看一下是不是USB中断优先级冲突了。

使用特权

评论回复
地板
周半梅| | 2025-6-10 07:30 | 只看该作者
连续发送太快的话,有可能缓冲区爆了。

使用特权

评论回复
5
帛灿灿| | 2025-6-10 07:30 | 只看该作者
我遇到是因为没及时清除发送完成标志位。

使用特权

评论回复
6
童雨竹|  楼主 | 2025-6-10 07:31 | 只看该作者
ST官方的CDC例程其实也不太稳定。

使用特权

评论回复
7
万图| | 2025-6-10 07:32 | 只看该作者
可以加个watchdog防止主循环卡死。

使用特权

评论回复
8
Wordsworth| | 2025-6-10 07:33 | 只看该作者
看USB线材和供电也有影响。

使用特权

评论回复
9
Bblythe| | 2025-6-10 07:34 | 只看该作者
用PC端串口助手看是否握手丢失了。

使用特权

评论回复
10
Pulitzer| | 2025-6-10 07:34 | 只看该作者
可以试下每10秒重连一下USB端口。

使用特权

评论回复
11
Uriah| | 2025-6-10 07:35 | 只看该作者
用逻辑分析仪抓一下USB数据会比较直观。

使用特权

评论回复
12
dukedz| | 2025-6-10 11:25 | 只看该作者
之前遇到类似问题,我的stm32 usb死机调试记录:https://blog.d-l.io/stm32g0-hardfault-debug-cn

使用特权

评论回复
13
flycamelaaa| | 2025-6-10 15:13 | 只看该作者
用示波器监测一下电压。

使用特权

评论回复
14
elephant00| | 2025-6-10 15:21 | 只看该作者
检查动态内存分配是否释放。

使用特权

评论回复
15
powerantone| | 2025-6-10 15:56 | 只看该作者
检查电源是否稳定,必要时增加滤波电容或使用LDO稳压器。

使用特权

评论回复
16
stormwind123| | 2025-6-10 17:00 | 只看该作者
检查USB D+和D-信号线的阻抗匹配,避免信号反射。

使用特权

评论回复
17
probedog| | 2025-6-10 18:00 | 只看该作者
在代码中实现看门狗定时器如独立看门狗IWDG,定期复位系统以防止死锁。

使用特权

评论回复
18
jcky001| | 2025-6-10 19:36 | 只看该作者
检查USB发送缓冲区是否被正确清空,避免数据堆积。

使用特权

评论回复
19
cr315| | 2025-6-10 20:30 | 只看该作者
优化中断处理,用标志位或队列机制将数据从ISR传递到主循环处理。

使用特权

评论回复
20
duo点| | 2025-6-10 22:00 | 只看该作者
CPU负载如果过高,需优化代码。

使用特权

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

本版积分规则

101

主题

5106

帖子

2

粉丝