|
我做的个温度采集
上位机发送6个字节给C52,单片机判断第1个字节和第6个字节,如果不对,就不发送温度数据;
但是我现在这个方法,是利用receive数组来保存多个字节,这样会有个问题就是:
每次必须发送6个字节,如果发送6个以下或以上, 这个判断会永远失效,因为数组每组赋值是叠加在一起的; 如果第一次发送4个字节,那么receive[0] - receive[3] 就先保存了这4个字节, 就说后面发送6个正确的字节,但这6个字节只能前面两个字节存放到 receive[4] receive[6]; 依次类推,就永远通不过if了;
请问大家用的什么方法? 拜谢!
void read_serial() interrupt 4
{
if(RI)
{
receive[k]=SBUF;
RI = 0;
k++;
if(k==6)
{
if(receive[0]=='T'&&receive[5]=='>')
{
k=0;//置0,便于下一次接收
flag=1;//接收完成标志
}
else
{
k=0;
}
}
}
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|