市场与应用

标题: 释放Windows系统使用中的串口号 [打印本页]

作者: IRXON    时间: 2021-1-24 05:28
标题: 释放Windows系统使用中的串口号
Windows系统电脑,反复安装不同版本的蓝牙驱动,或经常连接多种蓝牙设备、或经常安装USB转串口的设备,系统每次都会自动分配新的COM串口。以前使用过的COM串口,即使后来不用了,系统有时不会自动释放。这导致再安装新的设备时,系统新分配的COM串口号越来越高,甚至出现COM16这样的大数字。



查看设备管理器-端口-COM16-属性-端口设置-高级-COM端口号,发现从COM2-COM15全处于“使用中”,但实际上这些串口并没有被使用。
电脑上的串口应用软件,许多只提供COM1-COM4的选项,大数字的串口号,软件往往无法识别,这会导致串口应用软件不能工作。

怎样才能释放这些“使用中”的串口号,把越堆越高的COM串口号降下来呢?



可以通过删除注册表中ComDB数值项来清除系统对使用过的串口号的记忆,方法是在“运行”对话框中输入“regedit”进入注册表,然后进入 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter,可以看到ComDB数值项,它的值反应了当前系统串口号的使用情况。比如FEFF,倒过来是FFFE,对应的二进制是1111111111111110,从后往前每一位分别对应从COM1到COM16的占用状态,数值为0,表示空闲,数值为1,表示已被占用。数值FEFF说明从COM2-COM16的串口号都已被占用,以后如果系统发现新的串口设备,就只能从COM17开始分配了。



最简单的解决的办法就是删除ComDB这个数据项。方法是右键点击ComDB,选择“删除”,然后退出注册表编辑器。
删除了ComDB,再次查看设备管理器-端口-COM11-属性-端口设置-高级-COM端口号,会发现从COM2-COM15已不再处于“使用中”。
这时候可以手动调整一下串口号,比如把COM11改为COM3,或把COM16改为COM5,方法是:COM端口号-选择"COM3"-确定-确定。
完成后设备管理器如下图所示。



由于删除了ComDB,系统失去了对使用过的串口号的记忆,也包括对正在使用中的串口号的记忆。建议再次运行注册表编辑器,对正在使用中的串口号进行保护。针对上图设备管理器里的端口现状,可以将ComDB的值改为00011111,即1F,不让系统在COM1-COM5分配新的串口号,避免以后出现相同串口号的问题。






欢迎光临 市场与应用 (http://www.irxon.com/application/) Powered by Discuz! X3.2