如何判断串口链接正常 C#

summerXJY100 2012-09-19 08:40:30
有个设备通过USB和电脑相连,串口号是COM3。。如果使用过程中设备被拔出就不能正常使用了。。现在我想判断下设备是否正常连接 。。如果正常,则什么也不做。。如果不正常,则要对设别进行重新连接。

string port = string.Format("{0}",MessageModem.Properties.Settings.Default.Com_Port_new);
string a = "COM" + port;
SerialPort p = new SerialPort("COM" + port);
try
{
p.Open();
p.Close();
label6.Text = "链接异常";
//重连操作。

}
catch
{ label6.Text = "连接正常"; }


这样为什么不行啊?
...全文
487 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
summerXJY100 2012-09-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
用p.IsOpen属性判断是否已打开
[/Quote]

好像不行吧。。我想判断这个端口有没有在使用。

为什么我拔下设备和插上设备时 P.Isopen都是false
owennol 2012-09-19
  • 打赏
  • 举报
回复
用p.IsOpen属性判断是否已打开
summerXJY100 2012-09-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
一般我都是给串口发数据,收到正确回应才判断串口正常,否则就是有问题.
还有你这个try里是不是判断反了?
try
{
p.Open();
label6.Text = "正常";
}
catch
{
label6.Text = "异常";
}
if (label6.Text == "正常")
p.Close();

……
[/Quote]
没反吧。我意思是:如果串口如果异常,则重连。。。p.open()如果不能正常执行,说明串口正在被使用,则链接正常啊。就会捕捉到异常,执行CATCH
只在此山中 2012-09-19
  • 打赏
  • 举报
回复
一般我都是给串口发数据,收到正确回应才判断串口正常,否则就是有问题.
还有你这个try里是不是判断反了?
try
{
p.Open();
label6.Text = "正常";
}
catch
{
label6.Text = "异常";
}
if (label6.Text == "正常")
p.Close();

...

110,656

社区成员

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

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

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