在上一节里,串口数据流已经放进comdata字符串里了。 小伙伴们是不是已经迫不及待地要把角度信息读出来了 慢着! 先校验一下啊。如果收到的是一串错误数据,那可就坑爹了! 我们来看一下串口协议
首先,我们来做一下数据格式校验。字符串的第一位和第二位应该分别是16进制的55和41,且字符串长度应该是63。 如果不是的话,输出一个错误代码,错误代码名字我已经想好了,就叫01吧。 else
{
Serial.println("err code 01");
return false;
}
“01”不是读“零一”,而是“洞幺”
若是第一步校验通过了,再做第二步校验,叫“字节和”校验。 如果第二步校验没通过,输出一个错误代码,错误代码名字我已经想好了, 就叫07吧。 else
{
Serial.println("err code 07");
return false;
}
“07”不是读“零七”,而是“洞拐”
下面,我们来写一下校验函数吧,函数类型为bool型,校验通过返回“true”。 bool ma10_serial_verif(void)
{
//Serial.println(comdata1);
if (comdata1 == 0X55 && comdata1 == 0X41 && comdata1.length() == 63)
{
char ver1=0;
for (i = 0; i < 63; i++)
{
buff1 = comdata1;
if(i<62)
ver1 += comdata1;
}
if (ver1 == comdata1)
return true;
else
{
Serial.println("err code 07");
return false;
}
}
else
{
Serial.println("err code 01");
return false;
}
}
如果校验没通过的话,请大家自由发挥。。。
在上一节里,串口数据流已经放进comdata字符串里了。 小伙伴们是不是已经迫不及待地要把角度信息读出来了 慢着! 先校验一下啊。如果收到的是一串错误数据,那可就坑爹了! 我们来看一下串口协议
首先,我们来做一下数据格式校验。字符串的第一位和第二位应该分别是16进制的55和41,且字符串长度应该是63。 如果不是的话,输出一个错误代码,错误代码名字我已经想好了,就叫01吧。 else
{
Serial.println("err code 01");
return false;
}
“01”不是读“零一”,而是“洞幺”
若是第一步校验通过了,再做第二步校验,叫“字节和”校验。 如果第二步校验没通过,输出一个错误代码,错误代码名字我已经想好了, 就叫07吧。 else
{
Serial.println("err code 07");
return false;
}
“07”不是读“零七”,而是“洞拐”
下面,我们来写一下校验函数吧,函数类型为bool型,校验通过返回“true”。 bool ma10_serial_verif(void)
{
//Serial.println(comdata1);
if (comdata1 == 0X55 && comdata1 == 0X41 && comdata1.length() == 63)
{
char ver1=0;
for (i = 0; i < 63; i++)
{
buff1 = comdata1;
if(i<62)
ver1 += comdata1;
}
if (ver1 == comdata1)
return true;
else
{
Serial.println("err code 07");
return false;
}
}
else
{
Serial.println("err code 01");
return false;
}
}
如果校验没通过的话,请大家自由发挥。。。