c#中serialPort1_DataReceived串口接收事件处理

1.缓冲区不定字节读取(波特率很高也没问题)

//Thread.sleep(1000);//处理事件这块可以加上延时确保不定数的数据可以全部收到缓冲后,才去读缓冲内容--单位:毫秒

byte[] data = new byte[serialPort1.BytesToRead]; //定义缓冲区,因为串口事件触发时有可能收到不止一个字节
serialPort1.Read(data, 0, data.Length);//读取指定长度
foreach (byte Member in data) //遍历用法
{
  string str = Convert.ToString(Member, 16).ToUpper();
  textBox1.AppendText("0x" + (str.Length == 1 ? "0" + str : str) + " ");
}

2. 读取有的           

string InputData = serialPort1.ReadExisting();

 

3.单字节读取(当波特率高时就会丢失数据)

   byte DataReceived = (byte)(serialPort1.ReadByte());                                           //单字节读取

posted @ 2014-12-10 09:16  fx427103  阅读(5080)  评论(0编辑  收藏  举报