bg

COM 口无法打开、拒绝访问:5 种修复方法

Windows 上使用 COM 口时的常见错误

COM 口被占用。拒绝访问

COM 口被占用拒绝访问这两个错误通常是一回事。

在 Windows 操作系统中,一个 COM 口只能被一个程序使用,也就是说端口以独占方式打开。在此期间,其他程序无法用常规方式打开和使用同一个端口。

一个可行的解决办法是检查所有可能在使用该端口的已打开程序,并将它们关闭。

  • 在后台运行的 Windows 服务。可以在控制面板 → 服务中停止服务。只停止您熟悉的服务,因为其中一些对操作系统的运行至关重要。
  • 后台任务和挂起的进程。可以在任务管理器 → 详细信息中查看。
  • 特别是挂起后被强制结束的进程,即使已经停止,仍可能让端口处于占用状态。这种情况下唯一的办法是重新启动计算机。
  • 少数情况下,某些设备的驱动程序会占用端口(例如错误地在该端口上检测到设备的鼠标驱动程序)。

Advanced Serial Port Monitor 可以帮助您找出占用端口的进程名称。

  1. 下载 Serial Port Monitor(第一个链接)并安装到计算机上。
  2. 右键程序图标,选择"以管理员身份运行"。
  3. Mode 菜单中选择 Manual 模式。
  4. 在列表中选择该 COM 口并点击 Open
  5. 程序和其他应用程序一样无法打开该端口,但会显示占用端口的进程名称。
  6. 如果显示的名称是"System",说明端口被某个设备驱动程序占用,无法进一步确定。
  7. 根据进程名称,可以在任务管理器的详细信息视图中找到该进程并停止或结束它。

带说明的 COM 口列表

COM 口打开出错。无法打开 COM 口

如果程序在初始化端口时使用了错误的通信参数,就可能出现 COM 口打开错误。

  • 波特率。尝试使用设备不支持的波特率。请尝试以标准的 9600 波特率打开端口。
  • 数据位。串口驱动程序或设备本身不支持所选的数据位、停止位和校验位组合。请尝试用相对标准的参数 9600 8N1 打开端口。
  • 其他通信参数。程序为接收数据设置了无效的缓冲区大小(如果有此设置)。流控制参数(Xon/Xoff)也可能设置有误。
  • 设备处于关机状态(未通电)。这是 RS232-以太网转换器的常见错误。
  • 尝试打开错误的端口。您尝试打开的端口编号在系统中不存在。

COM 口拒绝访问

如果另一个应用程序或服务已经在使用该端口,就可能出现"COM 口拒绝访问"错误。需要检查:

1. 是否选择了正确的端口编号。
2. COM1 拒绝访问:如今 COM1 通常被 Windows 用于与主板上的 Intel Management Engine(或 AMD 的同类组件)通信,应用程序无法使用这个端口。
3. 您的程序可能已经崩溃,但任务管理器中仍残留着一个隐藏进程。打开任务管理器,切换到详细信息选项卡,检查所有进程并结束多余的副本。
4. Windows 可能会更改 USB-COM 转换器的 COM 口编号。您尝试打开的是某个逻辑 COM 口,但物理上对应的是另一个设备。

COM 口不可访问错误

这是上文所述一般"COM 口错误"的一种特殊情况,表示通过网络无法与远端的 RS232-以太网转换器通信。需要检查与设备的 ping 和数据包传输是否正常,确认网络参数没有改变,并确认 RS232-以太网转换器已通电。

运行期间出现 COM 口错误

本节不讨论传输数据本身的问题,例如线路上的电磁干扰导致单个字节损坏、校验失败等。

运行期间的 COM 口错误通常出现在可插拔设备上:RS232-以太网、RS232-USB 转换器。当与设备的物理连接在运行过程中断开时就会发生。要恢复数据传输,往往需要重新连接设备(重新打开端口)。

对于 USB-COM 转换器,如果插口接触不良,或者启用了该设备的电源节能选项(可在设备管理器中关闭),这种错误就会经常出现。

程序看不到 COM 口

如果程序看不到 COM 口,可能的原因包括:

  • 驱动程序问题。打开设备管理器,确认设备上没有感叹号。可能需要(重新)安装设备驱动程序。
  • 旧程序。有些旧程序无法使用编号大于或等于 COM10 的端口。请在设备管理器的设备属性中分配另一个端口编号。可以使用 Advanced Serial Port Monitor(它支持多种查找端口的方法)确认该端口在系统中确实存在。
  • 隐藏的端口。遗憾的是,有些端口只能由特定程序通过特殊标识符访问。

另请参阅

Windows 11 和 10 中 COM 口不工作:5 种解决方法
在 Windows 11 中列出 COM 口并找到占用端口的程序
COM 口无法打开、拒绝访问:5 种修复方法
在 Windows 11 中检查和测试 COM 口:CMD、PowerShell
串口乱码:按顺序做 7 项检查