我正在开发一个与串口通信的应用程序,在我的开发机器上,我正在运行Vista,而该串口是蓝牙连接。有时,串行端口会陷入我的应用程序无法再连接到它的状态。在.net中,我收到一条IOException,其中显示的消息为“找不到元素。”

我尝试重新启动应用程序,连接其他应用程序(像HyperTerm这样的通信客户端),但没有任何帮助。我找不到任何更具体的错误消息,并且没有任何内容记录到计算机的事件日志中。设备管理器告诉我端口“正常工作”。

有没有办法找出哪个进程和.dll拥有串口,和/或强制端口关闭?

如果它有任何区别,我的应用程序是在C#中,但从结构上来说,使用“使用”打开和关闭端口并不方便。言。

谢谢,   安迪

有帮助吗?

解决方案

据我所知,您无法关闭没有句柄的串行端口。我对蓝牙串口的经验是,它们最终会在连接时映射到不同的COM端口号,有时在断开连接时会留下虚假的COM端口。例如,我目前没有连接蓝牙设备,但是如果我进入设备管理器,我看到总共有11个COM端口被列为蓝牙串口这些端口上的属性将设备显示为工作和可用,虽然我偶尔会失败,但我通常可以打开这些端口。我的解决方法是通过属性/高级/ COM端口号强制连接设备的COM端口号。我不确定这个问题是否与驱动程序有关(在这种情况下是IVT公司),或者是Windows管理蓝牙串口的问题。

抱歉,我无法提供任何帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top