日期:2014-05-20  浏览次数:20865 次

.NET下怎么读取串口传过来的数据
最近做的的一个项目,要用。net读错串口发来的数据,就类似于串口助手接收到数据并显示出来,哪位高手能指点下,有参考代码更佳~

------解决方案--------------------
简单来说就是调用SerialPort.Write方法,然后在DataReceived事件中获取接收到的数据,需要注意的是DataReceived事件不在主线程中,需要使用代理才能在界面上显示出来。

下面这段值得仔细看看。

C# code
private delegate void d_SetText(string str);

private void SetText(string str)
{
    this.textBox1.Text += str;
}

private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
    int len = serialPort1.BytesToRead;
    byte[] buf = new byte[len];
    serialPort1.Read(buf, 0, buf.Length);
    this.Invoke(new d_SetText(SetText), new object[] { System.Text.Encoding.Default.GetString(buf) });
}

private void button1_Click(object sender, EventArgs e)
{
    serialPort1.Write("这里写串口命令");  //注意有时候需要加Char(13)或者Char(10),具体看通讯协议
}

------解决方案--------------------
请参照一下吧,下载实例看看:http://www.shilidata.com/search.aspx?type=&searchid=11055


关于C#中关于串口的监听 
http://www.shilidata.com/showtopic-280.aspx


串口通讯System.IO.Ports.Serialport 
http://www.shilidata.com/showtopic-182.aspx