使用这个函数:get_dis() 试试看。
1、在函数void setup() 前定义全局变量int dis_count;
2、调用get_dis()函数;
3、接收到数据、并且正确,返回return 1,同时给dis_count赋值;
4、没有接收到数据,或者接收数据不正确,返回return 0;
5、发送或者接收到的数据是十六进制数据;
函数运算十进制运算,dis_count是十进制。
6、应用
-----
int dis_count;
-----
void setup()
{
-----
}
void loop()
{
-------
if(get_dis())
{
-----
------;//接收到正确的数据
-----
}
-----
}
////////////////////////////////////
int get_dis()
{
if (Serial.available() > 0) //判断串口接收到数据否,无返回return 0;
{
int aaa[9] = {0}; //如果还需要前面的10个数据,把这一句放在void setup()前
byte a,b,c,d;
for(int i=0;i<10;i++) //把前面的十个数据去了
{
aaa[i] = Serial.read(); //前10个字节保留在数组aaa中
}
b=Serial.read(); //你要的数据字节1
c=Serial.read(); //你要的数据字节2
d=b+c; //校验和,不能省,结果是一个字节
if(d==Serial.read()) //校验和不正确,返回return 0
{
dis_count=b+c; //校验和正确,返回return 1,并赋值
return 1;
}
}
return 0;
}