public void sp1_DataReceived(object sender, SerialDataReceivedEventArgs e)//数据接收函数
{
if (sp1.IsOpen) //此处可能没有必要判断是否打开串口,但为了严谨性,我还是加上了
{
byte[] byteRead = new byte[sp1.BytesToRead]; //BytesToRead:sp1接收的字符个数
if (rbRcv16.Checked) //'接收16进制按钮'
{
try
{
Byte[] receivedData = new Byte[sp1.BytesToRead]; //创建接收字节数组
sp1.Read(receivedData, 0, receivedData.Length); //读取数据
sp1.DiscardInBuffer(); //清空SerialPort控件的Buffer
string strRcv = null;
for (int i = 0; i < receivedData.Length; i++) //窗体显示
{
strRcv = receivedData[i].ToString("X2"); //16进制显示
mydata[i] = receivedData[i];
richTextBox1.Text += strRcv; //显示在16进制数据栏
richTextBox1.Text += ","; //让每个数据都隔开
}
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message, "出错提示");
// txtSend.Text = "";
}
}
}
else
{
MessageBox.Show("请打开某个串口或者没有选中16进制接收", "错误提示");
}
}
请问这个函数就这么摆在form1.cs中有用吗??
我想要没过一段时间接收到一个来自串口的数据,然后得到数据来绘图,我真的不懂啊,我做到现在,接着该干什么了?
![![图片说明](https://img-ask.csdn.net/upload/201609/28/1475058528_152554.png)图片说明](https://img-ask.csdn.net/upload/201609/28/1475058511_129833.png)
请问是不是还需要线程什么的?我没接触这个多久,只是会用一些控件,但是被要求突然做个上位机,也是蒙逼的,求大神指点!!!