【Window 硬件】检测哪个程序占用了串口

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chenlu5201314/article/details/86307216

一、常见提问

如何解决串口(COM)被占用问题

电脑串口号被占用,如何清除

解决串口(COM)被占用问题

我的电脑显示串口被占用,什么原因?

串口端口被占用的解决方法

串口被占用怎么办

window下,怎么查看串口被哪个进程占用,有什么方法或者软件可以协助查看吗?

串口不知被什么程序占用,有谁能帮我找出来吗

如何使用被其它程序占用的串口?

怎样查串口被个程序占用

如何清除Win7中被占用的COM口 串口

二、串口常见占用统计

  • 自己的软件存在BUG没有退出,可以在任务管理器中查看,修复自身软件bug;
  • 别的软件开机优先占用,此时需要找到占用串口的程序,卸载程序或删除;
  • USB转串口设备在使用过程热插拔,此时需要查看隐藏的串口,删除、重启计算机。
  • 莫名奇妙的Windows软件、硬件占用如:mstsc.exe、svchost.exe、控制面板-电话/调制解调选择-调制解调器、声卡等,这些占用情况,关闭或禁用基本能够解决占用情况,至于是怎么导致的,有可能是由于个人操作、硬件驱动、系统版本等原因导致。

 

三、查看串口号是否正在使用中

【Win+R】-运行-regedit

计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter

3.1ComDB二进制值说明

ComDB为二进制数据,表示相应串口是否在使用状态。ComDB的数据规则为,COMn 在ComDB数据数值的使用标识为从左到有,第( (n-1)/8+1)列的1<<( (n-1) mode 8+1)位 。0标识无此串口,1标识此串口正在使用。

每两位16进制数据为1列,m范围[0,31]:

  • 第m+1列的第1位标识COM[m*8+1]的使用状态;
  • 第m+1列的第2位标识COM[m*8+2]的使用状态;
  • 第m+1列的第3位标识COM[m*8+3]的使用状态;
  • 第m+1列的第4位标识COM[m*8+4]的使用状态;
  • 第m+1列的第5位标识COM[m*8+5]的使用状态;
  • 第m+1列的第6位标识COM[m*8+6]的使用状态;
  • 第m+1列的第7位标识COM[m*8+7]的使用状态;
  • 第m+1列的第8位标识COM[m*8+8]的使用状态。

例:如下图,第30+1=31列数据为0x80,则标识COM [30*8+8]=COM248的串口号为正在使用状态。

3.2重新分配串口号

删除ComDB项,计算机会重建此字段,意味着重新分配所有串口号,如果没有生效可尝试重启计算机。

四、查看隐藏的串口设备

设备管理器中看不到此串口号,但又不能将其他串口设置为此串口号;一些USB设备热插拔后自动分配了更高的串口号;这些都是隐藏串口导致的,找到他们并删除,USB尽量避免热插拔。

4.1设置显示硬件设备状态

set devmgr_show_nonpresent_devices=1

4.2显示隐藏的设备

devmgmt.msc

4.3删除隐藏占用的串口设备

五使用DOS命令查看串口运行状态

Mode

六、查找占用串口的程序

6.1准备好串口工具

如:CEIWEI CommMonitor10.0.1.18011.rar

6.2截获占用串口的程序PID

安装好后监控所有串口,使用对应串口连接的下位机的功能,如“上电”、“断电”或“单片机自定义的弹片触发”等一切可能的功能,往上位机推送数据,此时监控工具会截获下位机往上位机推送的数据并显示在数据区,其中就包括了占用此串口程序进程的PID。

6.3根据PID找到占用串口的程序

任务栏【右键】-任务管理器-详细信息,根据监控工具所示的PID在任务管理器中可以找到对应占用此串口程序的名称。

七、强制释放占用中的串口

7.1方式一、在任务管理器中结束占用串口的程序

任务栏【右键】-任务管理器-详细信息

7.2方式二、先禁用后启用串口设备

计算机【右键】-管理-计算机管理(本地)-系统工具-设备管理器-端口(COM和LPT)-通讯端口【右键】-禁用。

计算机【右键】-管理-计算机管理(本地)-系统工具-设备管理器-端口(COM和LPT)-通讯端口【右键】-启用。

 

 

7.3方式三、重启计算机

猜你喜欢

转载自blog.csdn.net/chenlu5201314/article/details/86307216