1.
点击上面的实时数据,下面是方法
private void toolStripButton3_Click(object sender, EventArgs e)
{
if (this.panel1.Controls.Count > 0)
{
Control ctl = this.panel1.Controls[0];
if (ctl is 实时数据)
{
实时数据 fmChild = ctl as 实时数据;
fmChild.ClosePort();
}
else if (ctl is 单灯控制)
{
单灯控制 fmChild = ctl as 单灯控制;
fmChild.Close();
}
}
this.panel1.Controls.Clear();
实时数据 realdata = new 实时数据();
realdata.FormBorderStyle = FormBorderStyle.None;
realdata.TopLevel = false;
this.panel1.Controls.Add(realdata);
realdata.Show();
}
2.实时数据form页面的不断地调用串口配置方法代码如下:
//串口参数设置
public void SetPot(SerialPort sp, string PortName, string BaudRate, string DateBit, string StopBit, string CheckBit)
{
if (sp.IsOpen)
{
sp.Close();
}
if (PortName == "")
{
MessageBox.Show("端口名不能为空");
return;
}
sp.PortName = PortName;//端口名
if (BaudRate == "")
{
MessageBox.Show("波特率不能为空");
return;
}
sp.BaudRate = int.Parse(BaudRate);//波特率
if(DateBit=="")
{
MessageBox.Show("数据位不能为空");
return;
}
sp.DataBits = int.Parse(DateBit);//数据位
//停止位
switch (StopBit)
{
case "1":
sp.StopBits = StopBits.One;
break;
case "1.5":
sp.StopBits = StopBits.OnePointFive;
break;
case "2":
sp.StopBits = StopBits.Two;
break;
default:
sp.StopBits = StopBits.One;
break;
}
//校验位
string s = CheckBit;
switch(CheckBit)
{
case "无":
sp.Parity = Parity.None;
break;
case "奇校验":
sp.Parity = Parity.Odd;
break;
case "偶校验":
sp.Parity = Parity.Even;
break;
default: sp.Parity = Parity.None;
break;
}
//sp.DiscardOutBuffer();
//sp.DiscardInBuffer();
//读取超时设定
sp.ReadTimeout = 500;
//写超时设定
sp.WriteTimeout=5000;
//设置缓冲区大小
sp.ReadBufferSize = 4096;
sp.WriteBufferSize = 4096;
sp.Open();
}
当再次点击“实时数据“时就报错问了许多人了,当然都是网上问的,都没解决,只好找大神帮忙了C#串口定时
点击上面的实时数据,下面是方法
private void toolStripButton3_Click(object sender, EventArgs e)
{
if (this.panel1.Controls.Count > 0)
{
Control ctl = this.panel1.Controls[0];
if (ctl is 实时数据)
{
实时数据 fmChild = ctl as 实时数据;
fmChild.ClosePort();
}
else if (ctl is 单灯控制)
{
单灯控制 fmChild = ctl as 单灯控制;
fmChild.Close();
}
}
this.panel1.Controls.Clear();
实时数据 realdata = new 实时数据();
realdata.FormBorderStyle = FormBorderStyle.None;
realdata.TopLevel = false;
this.panel1.Controls.Add(realdata);
realdata.Show();
}
2.实时数据form页面的不断地调用串口配置方法代码如下:
//串口参数设置
public void SetPot(SerialPort sp, string PortName, string BaudRate, string DateBit, string StopBit, string CheckBit)
{
if (sp.IsOpen)
{
sp.Close();
}
if (PortName == "")
{
MessageBox.Show("端口名不能为空");
return;
}
sp.PortName = PortName;//端口名
if (BaudRate == "")
{
MessageBox.Show("波特率不能为空");
return;
}
sp.BaudRate = int.Parse(BaudRate);//波特率
if(DateBit=="")
{
MessageBox.Show("数据位不能为空");
return;
}
sp.DataBits = int.Parse(DateBit);//数据位
//停止位
switch (StopBit)
{
case "1":
sp.StopBits = StopBits.One;
break;
case "1.5":
sp.StopBits = StopBits.OnePointFive;
break;
case "2":
sp.StopBits = StopBits.Two;
break;
default:
sp.StopBits = StopBits.One;
break;
}
//校验位
string s = CheckBit;
switch(CheckBit)
{
case "无":
sp.Parity = Parity.None;
break;
case "奇校验":
sp.Parity = Parity.Odd;
break;
case "偶校验":
sp.Parity = Parity.Even;
break;
default: sp.Parity = Parity.None;
break;
}
//sp.DiscardOutBuffer();
//sp.DiscardInBuffer();
//读取超时设定
sp.ReadTimeout = 500;
//写超时设定
sp.WriteTimeout=5000;
//设置缓冲区大小
sp.ReadBufferSize = 4096;
sp.WriteBufferSize = 4096;
sp.Open();
}
当再次点击“实时数据“时就报错问了许多人了,当然都是网上问的,都没解决,只好找大神帮忙了C#串口定时
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货