打印
[USB芯片]

Windows系统禁用串口序列号功能

[复制链接]
8408|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
WCH@TECH39|  楼主 | 2021-10-3 22:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 WCH@TECH39 于 2021-10-3 22:31 编辑

上一篇博客《Windows系统USB转串口固定COM口编号》中提到了如何固定COM口序号并且实现多个USB串口设备的区分。内置USB Serial Number的USB芯片在终端客户使用时十分便利,在生产环节批量测试时会遇到以下问题。

1、USB设备首次插入Windows系统主机时,系统会根据芯片的USB Serial Number为其分配串口号,这个过程会持续几秒钟甚至数十秒,然后Windows会记录下设备的VID/PID/Serial Number,等设备再次接入后,Windows系统会先查找之前记录的设备列表,如果有匹配的设备,则不需要重新分配新的串口(安装驱动)。

2、以CH342/CH343芯片为例,芯片出厂时均内置USB Serial Number,各芯片均是唯一的,导致每次接入新设备,都会重新安装驱动,分配新的COM号。

3、COM口序号会随着设备的增加而不停增加,生产用的电脑到一定数量则无法生成新串口。

4、COM口序号不停改变,需要通过串口测试产品功能时要不停更换串口。

为避免上述问题,尤其是生产用机器,可以使用下述方法进行规避从而提高效率。方法为:强制忽略USB Serial Number

原理为,对HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags的注册表项IgnoreHWSerNum进行配置,组成形式IgnoreHWSerNumVVVVPPPP,其中VVVV为设备VID,PPPP为设备PID。
将IgnoreHWSerNum与待设置USB设备VID、PID组合之后,配置值为01,则强制 USB 驱动程序堆栈忽略设备的序列号。配置值为00,则代表启用设备的序列号功能。

示例:(产品VID为1A86,PID为55D4)
1、创建txt文件,写入如下内容
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags]
"IgnoreHWSerNum1A8655D4"=hex:01

2、保存,并将txt文件后缀名修改为IgnoreHwSerNum_CH343.reg  

3、双击运行该注册表文件将其导入至系统

使用特权

评论回复
沙发
littlelida| | 2021-10-4 12:01 | 只看该作者
有点深奥,
mark
按这步骤试试

使用特权

评论回复
板凳
cool_coder| | 2021-10-4 13:49 | 只看该作者
mark

使用特权

评论回复
地板
海洋无限| | 2021-10-4 16:29 | 只看该作者
USB相关的东西

使用特权

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

本版积分规则

17

主题

148

帖子

1

粉丝