接收只能接收一个字符然后断电之后能接收下一个字符是什么原因啊interrupt VectorNumber_Vsci1rx void isrSCI1(void) { byte temp = 0; temp = SCI1S1; //接收当前的字符 cReceiveTemp=SCI1D; //接收当前的字符 if(cReceiveTemp=='e') ////////接收到结束码后的处理 { temp = SCI1S1; if(cReceiveBuf[cReceiveNum-1]==cReceiveSum) //////效验和正确 { cReceiveBuf[cReceiveNum-1]='\0'; //上次接收到的字符为接收数组结束标志 Receive(); //接收数据处理 } SCI1C2_RIE=0; cReceiveNum=0; //清发送已接收的数据计数 cReceiveSum=0; //清接收效验和 cReceiveBuf[0]='\0'; //设定接收数据长度为零 cReceiveTemp=0; //清接收暂存 cReceiveTemp1=0; //清上次接收暂存
} else ////////接收数据 { temp=SCI1S1; cReceiveBuf[cReceiveNum]=cReceiveTemp; //把本次接收的数据放到数组中 cReceiveSum+=cReceiveTemp1; //求效验和 cReceiveTemp1=cReceiveTemp; //把本次接收的数据放到暂存,用作下次的效验和 cReceiveNum++; //接收数据计数加1 } } |