(求助)串口 winform 调用目标发生异常

bad1050293 2007-08-24 05:00:43
sp.DataBits = Form2.DataBits;
sp.PortName = Form2.PortName;
if (Form2.StopBits == "1")
{
sp.StopBits = StopBits.One;
}
if (Form2.StopBits == "1.5")
{
sp.StopBits = StopBits.OnePointFive;
}
if (Form2.StopBits == "2")
{
sp.StopBits = StopBits.Two;
}
int[] BaudRate = new int[6];
BaudRate[0] = 4800;
BaudRate[1] = 9600;
BaudRate[2] = 38400;
BaudRate[3] = 57600;
BaudRate[4] = 19200;
BaudRate[5] = 115200;

for (int i = 0; i < 6; i++)
{
sp.BaudRate = BaudRate[i];
for (int n = 0; n < 3; n++)
{
if (n == 0)
{
sp.Parity = Parity.None;
}
if (n == 1)
{
sp.Parity = Parity.Even;
}
if (n == 2)
{
sp.Parity = Parity.Odd;
}


try
{
sp.Open();
toolStripButton1.Text = "串口关闭";

sp.Write("@#R00000000<");
char[] buffer = new char[9];
Thread.Sleep(1000);
sp.Read(buffer, 0, buffer.Length);
if (buffer[0] == 'W')
{
string xs = sp.PortName + "," + BaudRate[i].ToString() + "," + sp.Parity.ToString() + "," + sp.DataBits + "," + sp.StopBits;
toolStripStatusLabel3.Text = xs;
MessageBox.Show("检测到电台");
qd = buffer;
return;
}

}
catch
{

sp.Close();

}

}
}

MessageBox.Show("未检测到电台");----在这里出现"调用目标发生异常"的信息

toolStripButton1.Text = "串口打开";
return;
}
这个问题相当怪,有时出错,有时不会的
...全文
264 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuzl32 2007-08-24
  • 打赏
  • 举报
回复
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
sp.Close();

}
Ryan_d 2007-08-24
  • 打赏
  • 举报
回复
你在catch上加Exception参数,然后看ex.Message可能对你有帮助,至少能知道是执行那一步时出错,时好时坏很可能与你的串口设备有关

110,534

社区成员

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

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

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