[STM32F4] CubeMX 固件 USB CDC问题

[复制链接]
99|27
万图 发表于 2026-7-2 10:25 | 显示全部楼层
除了改宏之外还有个折中方案,扩大工程堆栈大小,在Keil里把Stack_Size调至0x400以上,就能保留512字节大包不报错。
Wordsworth 发表于 2026-7-2 10:26 | 显示全部楼层
调侃CubeMX自动生成逻辑太死板,不会自动区分片上FS和外置ULPI高速PHY,统一默认给512字节缓冲区,新手很容易踩坑。
Bblythe 发表于 2026-7-2 10:27 | 显示全部楼层
如果你需要高速大批量传输,别直接改HS宏,改用外置ULPI PHY,硬件支持高速模式后512字节包长才能正常发挥带宽优势。
Pulitzer 发表于 2026-7-2 10:28 | 显示全部楼层
给新手提个醒,回调里发送完数据一定要重新调用USBD_CDC_ReceivePacket,不然只会收一次数据就停止接收,串口断开无响应。
Uriah 发表于 2026-7-2 10:29 | 显示全部楼层
我测试过,全速USB理论最大包长只有64字节,宏定义写512完全多余,改成256、128都能稳定运行,没必要占用大量RAM。
Clyde011 发表于 2026-7-2 10:30 | 显示全部楼层
调试时可以先注释掉收发业务代码,只保留USB初始化,先确认设备能正常枚举,再加入回显逻辑,方便定位是缓冲区还是收发代码问题。
埃娃 发表于 2026-7-2 10:41 | 显示全部楼层
改宏定义是快速解决,但要注意配置文件中端点配置要一致。检查你的USB时钟配置,确保匹配。
classroom 发表于 2026-7-2 11:11 | 显示全部楼层
回显代码里buff_RX是个局部静态数组,如果收到超过256字节的数据,循环赋值会越界。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0