c#获取当前串口号

chen_2001 2015-03-08 12:11:12
电脑有几个串口,现在想直接与设备通信而不用选择串口,有什么办法吗?
用C#语言实现
...全文
990 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
兵工厂三剑客 2016-03-10
  • 打赏
  • 举报
回复

string[] serialports = SerialPort.GetPortNames();
            seriports_avaliabe = new ArrayList();
            //-------------------添加可用串口---------------
            for (int i = 0; i < serialports.Length; i++)
            {
                try
                {                    
                    sp.PortName = serialports[i];
                    sp.Open();//如果端口已经被占用,就不添加
                    sp.Close();
                    seriports_avaliabe.Add(serialports[i]);
                }
                catch (System.UnauthorizedAccessException ex)
                { 
                
                }
            }
苏州吴彦祖 2016-02-29
  • 打赏
  • 举报
回复
枚举出所有串口,自己便利一下,你和硬件方做好通讯协议,每遍历一个串口,发一个数据过去,如果能收到应答,就自动选择这个串口
秋的红果实 2016-02-29
  • 打赏
  • 举报
回复
补充:foreach少了}
秋的红果实 2016-02-29
  • 打赏
  • 举报
回复

string[] PortName=System.IO.Ports.SerialPort.getPortNames();
System.IO.Ports.SerialPort curr_Port;
foreach(string temp in PortName)
{
  curr_Port=new System.IO.Ports.SerialPort(temp);
  curr_Port.Open();
  if(curr_Port.IsOpen)
  {
     // Coding。。。。
  }
  curr_Port.Close();

手工敲得,不保障拼写
飞天凤凰601 2016-02-23
  • 打赏
  • 举报
回复
string[] ports = SerialPort.GetPortNames(); Array.Sort(ports); comboPortName.Items.AddRange(ports);
FTD_Fred 2016-02-23
  • 打赏
  • 举报
回复
引用 2 楼 bdmh 的回复:
枚举出所有串口,自己便利一下,你和硬件方做好通讯协议,每遍历一个串口,发一个数据过去,如果能收到应答,就自动选择这个串口
正解
qq_30461115 2016-02-22
  • 打赏
  • 举报
回复
能告诉我如何获得串口服务器上的com口吗 谢谢
zhou1986lin 2015-03-10
  • 打赏
  • 举报
回复
#4 +1
tcmakebest 2015-03-10
  • 打赏
  • 举报
回复
除非设备有专用的检测命令来判断设备是否存在, 否则就没有意义. 电脑上的串口不一定只包含物理存在的串口,而且还可能有虚拟串口.
WYPGOOD 2015-03-10
  • 打赏
  • 举报
回复
同意3楼SerialPort.GetPortNames()
於黾 2015-03-09
  • 打赏
  • 举报
回复
引用 2 楼 bdmh 的回复:
枚举出所有串口,自己便利一下,你和硬件方做好通讯协议,每遍历一个串口,发一个数据过去,如果能收到应答,就自动选择这个串口
+1 另外可以在open的时候做判断,如果打不开,就不要发请求了 可以减少检测时间 另外,更进一步的优化方案,如果某一次检测到了可用串口,就先把它存文件,下次启动读出来直接通信,而不要每次都检测 如果启动了,文件里有串口名,但是通信不成功,再重新检测.
沉默中自嘲 2015-03-09
  • 打赏
  • 举报
回复
SerialPort.GetPortNames()
bdmh 2015-03-08
  • 打赏
  • 举报
回复 1
枚举出所有串口,自己便利一下,你和硬件方做好通讯协议,每遍历一个串口,发一个数据过去,如果能收到应答,就自动选择这个串口
本拉灯 2015-03-08
  • 打赏
  • 举报
回复
遍历所有的串口号,然后逐个Open过去。 没异常的说明就是那个在用的端口了。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧