C#串口通信接收数据部完整

demo0222 2012-12-03 10:52:12
自己做可发送接收的串口通信,发5代码个字节数据(FA FB FC FD FE),每次只能接2-3个数据(FA FB)。再按发送键就能接(FC FD FE),以此类推。求大神帮忙。发送接收代码如下:
发送:
try
{
string s = textBox1.Text;
s = s.Replace(" ", "");
byte[] buffer = new byte[s.Length / 2];
for (int i = 0; i < s.Length; i += 2)
{
buffer[i / 2] = (byte)Convert.ToByte(s.Substring(i, 2), 16);
richTextBox1.Text += buffer[i / 2];
}
serialPort1.Write(buffer, 0, buffer.Length);
}
catch (Exception)
{
MessageBox.Show("发送数据时发生错误!");
return;
}
接收
int c = serialPort1.ReadByte();
richTextBox1.Text += c.ToString("X2") + " ";
...全文
783 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
知擎物联 2012-12-17
  • 打赏
  • 举报
回复
引用 8 楼 demo0222 的回复:
一叶知秋你的代码我仔细看了而且用了,有个小毛病。接收大量的数据时,程序会出bug,数组会超出长度。
嗯。确实有BUG。后来我也发现了。2.0修正了。 2.0下载地址: http://download.csdn.net/detail/yeqi3000/4853494
demo0222 2012-12-11
  • 打赏
  • 举报
回复
一叶知秋你的代码我仔细看了而且用了,有个小毛病。接收大量的数据时,程序会出bug,数组会超出长度。
知擎物联 2012-12-04
  • 打赏
  • 举报
回复
引用 3 楼 demo0222 的回复:
非常感谢!感觉很有帮助
那就结贴吧。结帖率低了,以后可没人来回答你问题了。
ouyang4683 2012-12-04
  • 打赏
  • 举报
回复
发送定长 解析也定长 或是长度占个字节也发过去
ycproc 2012-12-04
  • 打赏
  • 举报
回复
有可能是粘包了,用一个缓存队列接收数据。 然后根据分隔符进行粘包的数据解析。 你关心的不是单词的首发,而是从队列中依次取一段值。 把收和解析两件事情分开做。
wangyd324 2012-12-04
  • 打赏
  • 举报
回复
你的接收端没有接收完就发送了的 需要在服务器端判断下网络流时候还有数据 如果有就继续读,读完再传输
demo0222 2012-12-04
  • 打赏
  • 举报
回复
非常感谢!感觉很有帮助
知擎物联 2012-12-03
  • 打赏
  • 举报
回复
还有这个http://blog.csdn.net/yeqi3000/article/details/8236555
知擎物联 2012-12-03
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/yeqi3000/4663134 自己下一个,带源码,好好看看。

111,092

社区成员

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

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

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