您尚未登录。

楼主 # 今天 11:47:48

XIVN1987
会员
注册时间: 2019-08-30
已发帖子: 275
积分: 336.5

WINUSB MS OS 2.0 设备中 wMaxPacketSize 必须是 512 吗?

为单片机 USB HS 接口编写 WINUSB MS OS 2.0 例程,,当 wMaxPacketSize 设置为 128 或 256 时,,Windows 报错“无法识别的 USB 设备”。。
使用 usbpv 抓包结果如下,,可以看到系统获取设备描述符成功、设置地址成功、然后从新地址获取设备描述符和配置描述符也成功。。
但之后系统就不再继续后续步骤了,,而是从头重新上述步骤,,重复 4 次上述流程后,,彻底停止枚举。。

将 wMaxPacketSize 修改为 512 后,,可以正确枚举,,抓取结果如下:

我问 deepseek 为什么会这样,,它说 USB HS 下 Bulk 端点的 wMaxPacketSize 必须是 512,,我查了下 USB spec,,发现 spec 上确实是这样规定的:

但是之前编写 USB HS 接口的 U 盘例程时,,wMaxPacketSize 设置成了 128 却是可以正常枚举、正常工作的。。

所以 Windows 对不同类型的设备,,对 wMaxPacketSize 的约束有差异??

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn


东莞哇酷科技有限公司开发