SIGNAL(SIG_UART1_RECV) //不明白??
{
UART1_RxBuf[Rx1_Point]=inp(UDR1); //不明白??
if(Rx1_Point==0) //如果Rx1_Point=0
{ //那就是
Rx1_Checksum=0; // Rx1_Checksum=0
Rx1_Length=UART1_RxBuf[Rx1_Point]; // Rx1_Length=UART1_RxBuf[Rx1_Point]
Rx1_Point++; // Rx1_Point= Rx1_Point +1
return; 函数的结果返回
} //如果上面的Rx1_Point=0不成立,则执行下面的,
if(Rx1_Point==(Rx1_Length+1)) //即如果Rx1_Point不等于0并且Rx1_Point==(Rx1_Length+1)
{ //那就是
if(Rx1_Checksum==UART1_RxBuf[Rx1_Point]) //如果Rx1_Checksum==UART1_RxBuf[Rx1_Point]
Rx1_end=1; // 就Rx1_end=1
Rx1_Point=0; //不明白??这个结果是对应那个如果出来的??
return; //函数的结果返回
} //二个如果都不成立的情况下,则执行下面三行
Rx1_Checksum+=UART1_RxBuf[Rx1_Point]; //Rx1_Checksum+=UART1_RxBuf[Rx1_Point]
Rx1_Checksum&=0xff; // Rx1_Checksum&=0xff
Rx1_Point++; // Rx1_Point+1
}
第一、二、十五行是什么意思?
每一次RETURN的时候,是都把Rx1_Point、Rx1_Length、Rx1_Point的值都保留下来?以方便以后调用还是说返回的是空的值?
上面的解释有没有错误?请指正。因为我才刚刚学,好多地方都不明白,所以可能有些地方把程序的意义弄错。
[此贴子已经被作者于2006-10-19 13:32:32编辑过]