从串口接收一组以数据,数组以FF开头,如FF 00 11 22 33 44 55 66,一直接收。然后在满足某一条件时候发送出去,现在收到数据的顺序不对了,程序:
void r_t_data(void) interrupt 4 //串口中断接收数据组,共7个,首位为0xFF.
{
uchar data_r,i;
bit rec;
if (RI==1)
{
data_r=SBUF;
RI=0;
if((data_r==0xff))
{i=0;
rd[i]=SBUF;
i++;
rec=1; }
if(rec==1)
{
if(i<7)
{rd[i]=SBUF;
i++;
}
if(i>=7)
{ rec=0;
}
}
}
if(r==1) //如果r为1,则发送数组。在主程序里;
{ES=0;
zhuanhuan();
cai1=cai1+cai;
txdd(rd,7);
ES=1;
r=0;
}
void txdd(uchar tt[],uchar n) //RS232装tt数组里的的n个数据写出,
{ uchar i;
for(i=0;i<n;i++)
{ SBUF=tt[i];
while(!TI );
TI=0;
}
}
|