C# 接受串口数据处理的问题, 包全粘帖一起了 怎么处理?
发送一个命令后
收到ARM那边传来的数据,其实ARM是打了四次,分别如下:
F0037E018E
7001 17 01060000FFFF01444444444444444444444444 42 记录一
7001 17 01060000FFFF01555555555555555555555555 76 记录二
F0037E048B
“F0 03 7E 01 8E ”
头 长度 内容 校验
7001 17 01060000FFFF01555555555555555555555555 76 记录二
头 长度 内容 校验
但是C#里接受时,并不是我想象的那样触发了4次事件,每次刚好接受一个数据包
全部粘帖在一起了,一起过来了
我在 form_load 里做如下
comm.ReceivedBytesThreshold = 5;// 触发条件,//添加事件注册comm.DataReceived += comm_DataReceived;
int n = comm.BytesToRead; byte[] buf = new byte[n];//声明一个临时数组存储当前来的串口数据 string str = ""; received_count += n;//增加接收计数 comm.Read(buf, 0, n);//读取缓冲数据 //因为要访问ui资源,所以需要使用invoke方式同步ui。 this.Invoke((EventHandler)(delegate { for (int i = 0; i < n; i++) { str += buf[i].ToString("X2"); } this.txGet.AppendText(str); //修改接收计数 labelGetCount.Text = "Get:" + received_count.ToString(); }));