C#串口通信接收数据部完整
自己做可发送接收的串口通信,发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") + " ";
------解决方案--------------------http://download.csdn.net/detail/yeqi3000/4663134
自己下一个,带源码,好好看看。
------解决方案--------------------你的接收端没有接收完就发送了的
需要在服务器端判断下网络流时候还有数据
如果有就继续读,读完再传输
------解决方案--------------------
有可能是粘包了,用一个缓存队列接收数据。
然后根据分隔符进行粘包的数据解析。
你关心的不是单词的首发,而是从队列中依次取一段值。
把收和解析两件事情分开做。