有程序解释最好,谢谢帮助哦! (51单片机串口发送)
private void port_DataReceived(object sender, SerialDataReceivedEventArgs e) //串口接收事件
{
int i = 1;
if (!radioButton3.Checked) //接收为字符模式
{
string str = serialPort1.ReadExisting(); //字符串方式读取
textBox9.AppendText(str);//添加内容
}
else //如果接收模式为数值模式
{
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) + " "); //文本框显示1
//上一句等同于 if(str.Length==1)
//str = '0' + str;
//else
//str = str;
//textBox1.AppendText("0x" + str);
}
}
}
我是用51单片机逐个字符发送的
string str = "123/456/789";
string[] plist = str.Split('/');
对应写到格子里就好了
你这个应该用到了定时器吧?不知道你这个数据读取完毕要多长时间,如果很短的话,可以等数据加载完,就是你textbox9显示完,然后将textbox9的值去空格赋值给数组,然后就是一一对应赋值到每个textbox中了
监听com1端口 ,捕获数据后,fill to textbox.
遍历数组,然后将每个数组成员分别填充到对应的textbox中去