C# winform中 接受串口数据 ,在textBox中一行显示一个数据包

易小侠
C/C++领域新星创作者
2016-04-28 10:52:12
协议: 帧头+数据长度+数1+数2+数3+校验和

即: 88+06+xxxx+yyyy+zzzz +mm 16进制

private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{

byte data;
data = (byte)serialPort1.ReadByte();
string str = Convert.ToString(data, 16).ToUpper();
textBox.AppendText((str.Length == 1 ? "0"+str:str)+" ");
}

上面程序textBox数据显示的是
@# ¥% 88 06 xx xx yy yy zz zz mm 88 06 xx xx yy yy zz zz mm 88 06 xx xx yy yy zz zz mm ........
这样循环下去 (PS:@# ¥%是乱码)

我的目的是
88 06 xx xx yy yy zz zz mm
88 06 xx xx yy yy zz zz mm
88 06 xx xx yy yy zz zz mm
这样按行显示。

怎么写程序,求大神。我是小白我是小白我是小白(菜说3遍)
...全文
231 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
不知道你的乱码是什么东东…… 但可以将你的文本最终通过正则加入换行
Regex.Replace(txt,@"(?<!^)88\s+06","\r$0")
易小侠 2016-04-28
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
不知道你的乱码是什么东东…… 但可以将你的文本最终通过正则加入换行
Regex.Replace(txt,@"(?<!^)88\s+06","\r$0")
能具体一点么,比如每行都保存到字符串数组array[],再显示到textBox1 哈哈太菜

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧