C#使用serialport串口发送和接收,接收不到返回数据
lh631 2012-03-31 02:55:47 自己写的一个串口接收发送的小程序,向串口发送命令是应该有返回信息的
可是写的程序运行没有任何返回信息,求解
public partial class Form1 : Form
{
SerialPort sp = new SerialPort();
public Form1()
{
InitializeComponent();
sp.PortName = "COM4";
sp.BaudRate = 115200;
sp.DataBits = 8;
sp.StopBits = StopBits.One;
sp.Parity = Parity.None;
sp.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived);
sp.Open();
}
//数据接收使用的代理
private delegate void myDelegate(string s);
private void button1_Click(object sender, EventArgs e)
{
string st1 = textBox1.Text;
sp.WriteLine(st1);
textBox1.Text = "";
}
private void SetText(string s)
{
listBox1.Items.Add(s);
}
//串口数据到达时的事件
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
//关键 代理
myDelegate md = new myDelegate(SetText);
try
{
if (sp.IsOpen == true)
{
byte[] readBuffer = new byte[sp.ReadBufferSize];
sp.Read(readBuffer, 0, readBuffer.Length);
string readstr = Encoding.UTF8.GetString(readBuffer);
Invoke(md, readstr);
}
}
catch (Exception err)
{
throw err;
}
}
}