如何清理正在使用的 COM 端口?

如何清理正在使用的 COM 端口?

我该如何清理这些正在使用的 COM 端口? 在此处输入图片描述

COM 端口号似乎总是被某些东西占用,虽然现在我只有 4 个串行端口(3 个通过蓝牙,1 个通过 USB 转 RS-232),但我已将多个 COM 端口设置为正在使用。我想稍微清理一下该列表。

另外在我看来,有时,其中一个被占用的 COM 端口会被释放,然后我使用的其中一个设备会占用该号码,从而造成混乱,因为我必须去设备管理器中寻找它的 com 号码。

更新:

好吧,我刚刚使用 USBDeview 清理了曾经连接到计算机的无数 USB 设备,但问题仍然存在。

答案1

从提升的命令行运行设备管理器:

> set DEVMGR_SHOW_NONPRESENT_DEVICES=1
> devmgmt.msc

在菜单中启用“显示隐藏的设备”,并卸载灰色的 COM 端口。

答案2

我找到了一个有用的答案如何清除或重置 COM 端口?

  1. 单击开始 → 运行 → 输入regedit并单击确定按钮
  2. 导航HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter
  3. 现在在右侧面板上,您可以看到密钥ComDB。右键单击它,然后单击修改
  4. 在值数据部分选择全部并删除重置为零(0
    其 32 个字节,每个字节 8 位,以十六进制表示。值为 1 的位使端口号(1...256)保留。前 8 个端口位于两个最左边的十六进制值中,位从最低到最高从右到左升序,接下来的 8 个端口位于后两个,依此类推:十六进制将F3 24是二进制1111 0011 0010 0100,这意味着使用以下端口:(1, 2, 5, 6, 7, 81111 0011)(。 11, 140010 0100)在此处输入图片描述
  5. 关闭注册表编辑器,然后重新启动计算机。如果将值设置为0所有 COM 端口都是空闲的。

您可能需要重新安装任何 USB 转串行转换器。

答案3

感谢以上所有建议。我编写了软件来自动清理注册表,但尽管它确实调整了硬件、软件和仲裁器部分,但它并没有删除幻像 COM 端口条目。即使在移除“USB 转 2 串行端口”设备的情况下重新启动也无法正确清理系统。

然而,关于此的说明PDF确实工作正常:

对于 Win7,我稍微调整了 PDF 上的说明如下:

  1. 单击开始/(右键单击:)计算机/属性/高级系统设置(不是设备管理器)
  2. 单击环境变量
  3. 单击系统变量(底部)单击新建
  4. 输入变量名称:DEVMGR_SHOW_NONPRESENT_DEVICES
    输入变量值:1
  5. 单击“确定”(退出环境)
  6. 单击“确定”(退出系统属性)

  7. 单击“开始”。在命令框中,键入“管理”。这将显示“计算机管理”窗口...

  8. 单击“设备管理器”
  9. 单击查看并选择显示隐藏的设备
  10. 单击端口(COM 和 LPT)。
    现在出现所有端口,真实端口(黑色文本)和幻影端口(灰色文本)。
  11. 逐个右键单击幻影端口,然后选择卸载

现在应该已经清除了系统中不需要的幻影 USB 端口。

注意:清理所有幻象端口后,只留下“COM1”,我发现我的注册表显示:

Hardware:   COM1
Software:   COM1, COM2, COM3, COM4, COM5
Arbiter:    COM1, COM2, COM3

右键单击“计算机/属性/设备管理器/端口”仅显示 COM1。右键单击“COM1/属性/端口设置/高级”显示 COM1,其中 COM2“正在使用”,COM3“正在使用”。以前“正在使用”的所有其他设置(最高 7)现在都已释放。因此,只有“仲裁器”设置似乎在告诉 Win7 系统真正“正在使用”的是什么。计算机管理系统已清理仲裁器,但未清理软件部分...

... 微软有很多未解之谜...

答案4

我有一个简单的解决方案,对我有用...我统计了一下正在使用的 COM 端口多达 45 个!

1)打开设备管理器

2)从“查看”菜单中,选择“显示隐藏的设备”

3)从列表中展开“端口(COM 和 LPT)”类别

4)右键点击所有设备,删除(无需勾选删除驱动程序)

5)从操作菜单中,选择“扫描新设备”

6) 哇!所有实际设备将从 COM1 重新分配

相关内容