阻止 Windows 依据 USB 设备序列号递增 COM 编号
由于任何连接到 Windows PC 的设备都通过其 VID、PID 和 Serial 号进行识别。如果这 3 个参数中的任何一个发生了变化,那么 PC 将检测到新的硬件,并与该设备关联一个不同的 COM 端口,详情请参考 Windows USB device registry entries。
ESP ROM Code 中对 USB 描述符配置如下:
ESP32S2 |
ESP32S3 |
ESP32C3 |
|
---|---|---|---|
VID |
0x303a |
0x303a |
0x303a |
PID |
0x0002 |
0x1001 |
0x1001 |
Serial |
0 |
MAC 地址字符串 |
MAC 地址字符串 |
ESP32S2(usb-otg)Serial 为常量 0,每个设备相同,COM 号一致
ESP32S3(usb-serial-jtag)、ESP32C3(usb-serial-jtag)Serial 为设备 MAC 地址,每个设备均不同,COM 号默认递增
递增 COM 编号,为量产烧录带来额外工作。对于需要使用 USB 进行固件下载的客户,建议修改 Windows 的递增 COM 编号的规则,阻止依据 Serial 号递增编号。
解决方案
管理员方式打开 Windows CMD
, 执行以下指令。该指令将添加注册表项,阻止依据 Serial 号递增编号,设置完成后请重启电脑使能修改:
REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\303A10010101 /V IgnoreHWSerNum /t REG_BINARY /d 01
用户也可下载 ignore_hwserial_esp32s3c3.bat
脚本,右键选择管理员方式运行。