c#如何获取哪个COM口未被使用

如题所述

第1个回答  2017-04-01
这个只能一个一个打开试试
C# code
string ports = SerialPort.GetPortNames();
Array.Sort(ports);
List<string> validPorts = new List<string>();
foreach (string port in ports)
{
    try
    {
        SerialPort comm = new SerialPort();
        comm.PortName = port;
        comm.Open();
        comm.Close();
        validPorts.Add(port);
    }
    catch
    {
    }
}

本回答被网友采纳

如何使用C#检测某个串口(COM)是否被占用
用SerialPort类去打开那个串口 如果串口被占用,那么会抛出异常,这样你就可以判断了

C#中怎么捕获串口的连接的异常是属于哪种异常,例如不存在或者被...
例如,Parity、DataBits 或 Handshake 属性不是有效值;BaudRate 小于或等于零;ReadTimeout 或 WriteTimeout 属性小于零且不是 InfiniteTimeout。ArgumentException端口名称不是以“COM”开始的。- 或 -端口的文件类型不受支持。IOException此端口处于无效状态。 - 或 - 尝试设置基础端口状态失败。例如,...

C# winform 用serialPort控件如何判断COM1连接的设备是否存在或是否被其...
1)判断COM1是否连接设备的方法:使用串口提供的DTR\/DSR信号。在RS232C标志中,这对信号就是用来判断设备是否连接的;如果你的设备不支持DTR\/DSR信号,那只有通过软件应用协议来判断了。比如你可以规定这样的协议:计算机发送一个字节(字符)的数据;设备接收到这个数据后在送回到计算机(通常称为Echo)。

如何判断串口链接正常 C#
try { p.Open(); label6.Text = "正常"; } catch { label6.Text = "异常"; } if (label6.Text == "正常") p.Close(); ……没反吧。我意思是:如果串口如果异常,则重连。。。p.open()如果不能正常执行,说明串口正在被使用,则链接正常啊。就会捕捉到异常,执行CATCH ...

c#串口读取丢数据
如果我没猜错的话,你应该是读取了前面一部分,后面没了。比如发送了100字节,收到60字节之类的。如果是这个现象,无论你使用了回调,或者手动读取串口,都是读取了一下,就拿来用了。要知道,所谓串口你可以理解就是一个缓冲区,但是这个缓冲区的数据不是一次发过来的,需要你记录一个要接收的字节数...

com1和com2端口链接异常
右键点击【计算机】,选择【属性】-【设备管理器】:2.打开设备管理器之后,展开【端口】信息,检查通信端口com1是否已启用,如果未被启用,可以选中端口点击右键,选择【启用】即可。3.双击端口,查看设备状态:方案二:检查com1端口是否被其它程序占用 1.打开设备管理器后,如果端口已经启用并且com1运转...

C# 如何通过驱动程序关键字 查询COM口
C#可以获得COM口的总数,及每个COM口的名字 string[] PortItems = System.IO.Ports.SerialPort.GetPortNames();foreach (string port in PortItems) { \/\/port 第一个COM口的名字}PortItems.Length;\/\/COM口总数按照你的需求,只需要把关键字和COM口名字去比较就可以了.

C#读取com口数据
你用什么发的数据?在哪接收的数据。如果只有一个电脑,需要短接串口的23针才能自己给自己发数据,自己接收。串口调试工具作用就是打开串口,也许是你的程序没有打开串口吧。c#有一个serialport控件,都帮你封装好了

C# SerialPort COM1口打不开, 求原因
第一:你电脑上的串口有没有接上东西?你接的如果是USB的话,就不一定是COM1哦,要去设备管理器看看。如果你什么都没接,当然打不开。第二:被别的程序占用了端口。

c# .net 怎么捕获com 组件的异常?
catch (Exception ex){ throw ex;} 可以尝试一下 ,ApplicationException 与 SystemException 或者更详细的 异常类 NotSupportedException 当调用的方法不受支持,或试图读取、查找或写入不支持调用功能的流时引发的异常 InternalBufferOverflowException 内部缓冲区溢出时引发的异常 InvalidOperationException 当...

相似回答