C#串口接收数据-根据特定通信协议解析
来源:互联网 发布:百度软件制作 编辑:程序博客网 时间:2024/06/14 19:33
string strs3 = null;
//接收数据并显示函数:可用:测试的接收数据为:0x01 0x02(镇头) 0x02(长度) 0x03(帧尾、即校验位) 0x34 0x05(数据):这是硬件发送过来的测试数据
private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)//串口数据接收事件
{
int n = mySerialPort.BytesToRead;//获取接收缓冲区读取的字节数;
byte[] buf = new byte[n];//创建n个字节的缓存;
mySerialPort.Read(buf, 0, n);//读取数据存储到buffer.
byte[] ReceiveByte = new byte[256];//建立接收数据处理的buffer。
buffer.AddRange(buf);//缓存数据
//完整性判断
while (buffer.Count >= 4)
{
if (buffer[0] == 0x01)//检测针头
{
int len = buffer[2];//拿到接收数据的长度
if (buffer.Count < len + 4)
{
break;
}
buffer.CopyTo(0, ReceiveByte, 0, len + 4);//将接受的数据存储到ReceiveByte字节数组里面
byte jiaoyan;
jiaoyan = 0x03;//设置校验位
if (jiaoyan != ReceiveByte[3])
{
buffer.RemoveRange(0,len + 4);
continue;
}
buffer.RemoveRange(0, len + 4);////跳出循环了
//开始处理数据
DataProcess()
{ strs3 = ReceiveByte[4].ToString();
this.Dispatcher.BeginInvoke(new Action(() => txtBox1.Text = strs3));
}
}
else //帧头不正确时,记得清除
{
buffer.RemoveAt(0);//清除第一个字节,继续检测下一个。
}
}
}
}
阅读全文
0 0
- C#串口接收数据-根据特定通信协议解析
- 串口接收数据c#
- 串口接收数据c#
- 串口接收数据c#
- 解析串口-接收完整数据帧
- C#异步数据接收串口操作类
- C#异步数据接收串口操作类
- C#异步数据接收串口操作类
- C#异步数据接收串口操作类
- C#串口通讯 接收数据问题
- C#对串口数据接收的处理
- 基于C# Winform的串口数据接收
- C# 解决串口接收数据不完整
- C#中串口接收数据触发事件
- 基于C# Winform的串口数据接收
- c#串口数据接收处理大纲
- c#多串口多线程接收数据
- C# SerialPort串口通信发送接收,处理接收数据完整
- rational rose 2007安装破解全过程
- H
- 返回零长度的数组或者集合,而不是null
- 在macos上搭建istio
- MATLAB实现的车牌定位系统
- C#串口接收数据-根据特定通信协议解析
- 快速理解<jsp:include>和<%@include%>的区别(从计算机角度理解,不是我个人随便猜解)
- DEV gridview不自动排序
- 【多线程】(二)Java.lang.Process的思考
- 底层视觉--image denoising
- 唯快不破:TCP/IP详解--IP路由选择详解 ping命令的过程
- wannafly挑战赛4 C-割草机 思维
- jrtplib移植
- Android使用属性动画,实现分散式弹出菜单