.NET下如何读取串口传过来的数据
.NET下怎么读取串口传过来的数据
最近做的的一个项目,要用。net读错串口发来的数据,就类似于串口助手接收到数据并显示出来,哪位高手能指点下,有参考代码更佳~
------解决方案--------------------
简单来说就是调用SerialPort.Write方法,然后在DataReceived事件中获取接收到的数据,需要注意的是DataReceived事件不在主线程中,需要使用代理才能在界面上显示出来。
下面这段值得仔细看看。
最近做的的一个项目,要用。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