void UART0_RCV (void) interrupt 4
{
static unsigned char length;
unsigned char jiaoyan = 0;
char i;
if(RI)
{
RI = 0;
RX1_Buffer[count] = SBUF;
if(count==0 && RX1_Buffer[0]==0x55)
count++;
else if(count==1 && RX1_Buffer[1]==0x55)
count++;
else if(count==2 && RX1_Buffer[2]==0)
count++;
else if(count==3 && RX1_Buffer[3]==0)
count++;
else if(count==4)
count++;
else if(count==5)
{
length = RX1_Buffer[4]*256+RX1_Buffer[5]; //
count++;
{
static unsigned char length;
unsigned char jiaoyan = 0;
char i;
if(RI)
{
RI = 0;
RX1_Buffer[count] = SBUF;
if(count==0 && RX1_Buffer[0]==0x55)
count++;
else if(count==1 && RX1_Buffer[1]==0x55)
count++;
else if(count==2 && RX1_Buffer[2]==0)
count++;
else if(count==3 && RX1_Buffer[3]==0)
count++;
else if(count==4)
count++;
else if(count==5)
{
length = RX1_Buffer[4]*256+RX1_Buffer[5]; //
count++;
}
}
}
一开始length总是没定义成静态,导致每一次进入中断的时候,我前一次得到的length长度就被初始化了,后来才发觉。。。。。。。。。。。