一、通过系统自带工具检测
设备管理器(推荐) - 按 `Win + X` 或 `Win + R` 打开运行窗口,输入 `devmgmt.msc` 并回车。
- 在设备管理器中展开「端口(COM 和 LPT)」,查看是否有异常设备或带有黄色感叹号的串口,这通常表示串口被占用或存在硬件问题。
资源监视器
- 按 `Win + R` 打开运行窗口,输入 `perfmon.msc` 并回车。
- 在资源监视器的「性能」标签页中,切换到「CPU」或「内存」选项卡,查看占用串口相关资源的进程(如 `System` 或特定应用程序)。
二、通过命令行检测
netstat 命令
- 打开命令提示符(CMD),输入 `netstat -ano | findstr :端口号`(如 `netstat -ano | findstr :COM1`)。
- 若输出显示对应端口号的 PID(进程标识符),则表示该串口被占用。
端口占用工具
- 使用第三方工具如 `PortQry`、`SerialPortViewer` 等,直接扫描并列出占用串口的程序名称及进程ID。
三、通过编程检测(适用于开发者)
使用 `CreateFile` 函数尝试打开串口:
```c
HANDLE hPort = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
if (hPort == INVALID_HANDLE_VALUE) {
DWORD dwError = GetLastError();
if (dwError == ERROR_ACCESS_DENIED) {
// 串口被占用
} else {
// 其他错误(如串口不存在)
}
}
```
该方法需在程序中实现串口初始化检测。
四、其他注意事项
串口冲突: Windows 仅支持最多 255 个串口,若检测到异常端口(如非标准命名),可能是驱动或BIOS设置问题。 虚拟串口
通过以上方法,您可以快速定位串口占用情况,并根据具体场景采取相应措施(如关闭占用程序、调整BIOS设置等)。