如何确认使串口处于忙碌或占用状态的进程

更新 Jan 14, 2019

适用于

Driver

  • NI-VISA
  • NI-Serial

问题详述

通过VISA访问串口(COM)时,返回VI_ERROR_RSRC_BUSY或其他资源繁忙的错误。如何确定正在使用COM端口的进程?

解决方案

要查找正在使用串口(COM)的进程,请按照以下步骤操作:
  1. 下载 the Process Explorer tool 。
  2. 导航到Control Panel » Device Manager。在设备管理器中,找到Ports (COM & LPT),然后右键单击并在目标串行端口上选择 Properties 。
  3. 选择Details选项卡,然后单击Property字段并将值更改为Service 。在value栏会列出Service的值。在下面的示例中(NI USB-232),Service的值是NiSerU 。请记下此字段的值,以便在Process Explorer中进行搜索。
  4. 打开Process Explorer,将看到类似于下图的窗口。
  5. 在菜单中选择Find » Find Handle or DLL....,将弹出一个新窗口,在这个窗口的field Handle或者DLL的子菜单中将出现从Device Manager获得的值,在本例中为NiSerU。
  6. 单击Search,其结果将会显示哪个进程正在使用这个特定的句柄。例如在下面这个搜索的结果中,这个USB-232显示NIMax.exe正在使用\Device\NiSerU1。从这里,就可以确定哪个进程正在使用这个串口资源。

本文是否有帮助?

无帮助