matlab串口判断帧头,串口数据解析:帧头,数据提取的优选方案,SerialPort类实现...

private void GetSerialData()

{

if(mySerialPort.ReadByte()==2)//找到帧头,本来想用0X02,

{

byte[] D_Buffer=new byte[9];

mySerialPort.Read(D_Buffer,0,D_Buffer.Length);

byte[] myData=new byte[7];

int ID=D_Buffer[0]; //数据包标识

//如果通过校验和,则将缓冲区数据取出存入相应数据数组中。

if(Check(D_Buffer,D_Buffer[8])==true);

{

switch(ID)

{

case 1:

for(i=1;i<=7;i++)

myData1[i-1]=D_Buffer[i];

break;

case 2:

for(i=1;i<=7;i++)

myData2[i-1]=D_Buffer[i];

break;

case 3:

for(i=1;i<=7;i++)

myData3[i-1]=D_Buffer[i];

break;

}

}

}

}

//校验函数

private bool Check(byte d_Buffer,byte checkSum)

{

byte sum=0;

for (i=1;i<=7;i++)

{

sum+=d_Buffer[i];

}

if(sum==checkSum)//说明校验和通过,返回true。

return true;

else return false;//说明校验和不通过,返回false;

}请问:这种思路有疏漏,或者,有更优的解决方案吗?

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值