C#串口通信接收问题!

酱油专业户 2012-06-13 07:37:36

void comm_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
int n = com2.BytesToRead;//先记录下来,避免某种原因,人为的原因,操作几次之间时间长,缓存不一致
byte[] buf = new byte[n];//声明一个临时数组存储当前来的串口数据
com2.Read(buf, 0, n);//读取缓冲数据
builder.Clear();//清除字符串构造器的内容
//因为要访问ui资源,所以需要使用invoke方式同步ui。
this.Invoke((EventHandler)(delegate
{
//直接按ASCII规则转换成字符串
builder.Append(Encoding.ASCII.GetString(buf));
//追加的形式添加到文本框末端,并滚动到最后。
this.textBox2.AppendText(builder.ToString());
/* string text_1 = builder.ToString();
if (text_1.Substring(1, 4) == "CMTI")
button1.Enabled = false;*/
}));
}

我现在想从串口接收中识别出是否含有我需要的字符串“CMTI”,那么应该如何写呢?
我这样写,每次运行之后就kill掉了!
...全文
173 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bdmh 2012-06-14
  • 打赏
  • 举报
回复
GetString到一个string变量,然后通过string类的IndexOf判断是否存在


string str = "abcdefg";
if (str.IndexOf("abc") >= 0)
{
MessageBox.Show("有");
}
wl0326 2012-06-14
  • 打赏
  • 举报
回复
你把你接收到的数据存放在一个数组中,然后可以逐个和你需要的字符串作比较。
酱油专业户 2012-06-14
  • 打赏
  • 举报
回复
忘了回复了,sorry,问题我自己已经解决了,谢谢楼上2位的回答!

110,533

社区成员

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

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

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