在C#winform中的按钮单击事件上尝试从串行端口读取数据?
我在winform应用程序中从串行端口读取数据时遇到问题…这是我的代码在C#winform中的按钮单击事件上尝试从串行端口读取数据?,c#,winforms,serial-port,C#,Winforms,Serial Port,我在winform应用程序中从串行端口读取数据时遇到问题…这是我的代码 private void rtrvBtn_Click(object sender, EventArgs e) { btnid = 2; mySerialPort = new SerialPort(port); mySerialPort.Open(); compacket(btnid); if (combuffer[0] != 0)
private void rtrvBtn_Click(object sender, EventArgs e)
{
btnid = 2;
mySerialPort = new SerialPort(port);
mySerialPort.Open();
compacket(btnid);
if (combuffer[0] != 0)
{
mySerialPort.Write(combuffer, 0, 4);
System.Threading.Thread.Sleep(500);
mySerialPort.DataReceived += new SerialDataReceivedEventHandler(this.port_rec);
}
else
{
lblmsg.Text = "FL";
}
mySerialPort.Close();
rtrvBtn.Enabled = false;
conBtn.Enabled = true;
}
public void port_rec(object sender, SerialDataReceivedEventArgs e)
{
string s = Convert.ToString(mySerialPort.ReadExisting());
MessageBox.Show(s);
}
所以这里我没有得到任何数据,也没有输入port_rec事件。。有人能帮忙吗。。。我的串口设置如下
public void SettingRS232(string port)
{
try
{
mySerialPort = new SerialPort(port);
mySerialPort.PortName = port;
mySerialPort.BaudRate = 9600;
mySerialPort.Parity = Parity.None;
mySerialPort.StopBits = StopBits.One;
mySerialPort.DataBits = 8;
mySerialPort.Handshake = Handshake.None;
mySerialPort.ReadTimeout = 2000;
mySerialPort.WriteTimeout = 500;
mySerialPort.DtrEnable = true;
mySerialPort.RtsEnable = true;
}
catch (Exception ex)
{
lblmsg.Text = ex.Message;
}
}
伙计们,帮帮我吧我猜这两个方法与mySerialPort字段在同一个类中。您不应该在单击事件中创建新的串行端口对象,您应该使用您已有的串行端口对象。是的,我以前尝试过,但不起作用。。数据不正常,所以我现在尝试了这个,数据正常,我检查过了,但我现在无法读取