private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
byte data = 12;
int len = 0;
int bufsize = (int)serialPort1.BytesToRead; //获取缓存字节数
while (len < bufsize) //获取之后一个一个取
{
data = (byte)serialPort1.ReadByte(); //获取串口的值
len++;
string **str**= Convert.ToString(data, 16).ToUpper();//获取之后我们要在richtextbox中输出
if (str.Contains(" 0 "))
{
richTextBox1.Text = "";
serialPort1.DiscardInBuffer();//清除之前的缓存
}
if (str.Length == 1)//如果我们获取的值是一位我们在前面补个0
{
richTextBox1.AppendText(" 0" +** str**);
}
else
{
richTextBox1.AppendText(" " + str);//两个值就在前面加一个空格分隔
}
}
serialPort1.DiscardInBuffer();//清除之前的缓存
richTextBox1.AppendText(System.Environment.NewLine);//换行
}