初级会员

- 积分
- 124
- 金钱
- 124
- 注册时间
- 2018-3-26
- 在线时间
- 288 小时
|
请教一下大家和原子哥,关于清空串口缓存区的问题
- void Int_serial1() interrupt 16
- {
-
- if(SCON1 & 0x01) // RI1
- {
- SCON1 &= (~0x01); //RI1=0
-
-
- if(WriteReciPoint<BUFRECI)
- {
- Buf_Reci[WriteReciPoint]=SBUF1;
- WriteReciPoint++;
- }
-
- if((0xEE==Buf_Reci[0])&&(0xB1==Buf_Reci[1])&&(0x04==Buf_Reci[6])&&(0x01==Buf_Reci[9])&&(0xFF==Buf_Reci[13]))
- {
- SPEAKER_CTL1(ON);
- msDelay1(1000);
- WriteReciPoint=0;
- Buf_Reci[13]=0;
- memset(Buf_Reci,0,sizeof(Buf_Reci));
- }
- else if((0xEE==Buf_Reci[0])&&(0xB1==Buf_Reci[1])&&(0x04==Buf_Reci[6])&&(0x00==Buf_Reci[9])&&(0xFF==Buf_Reci[13]))
- {
- SPEAKER_CTL1(OFF);
- msDelay1(1000);
- WriteReciPoint=0;
- Buf_Reci[13]=0;
- memset(Buf_Reci,0,sizeof(Buf_Reci));
- }
- else if((0xEE==Buf_Reci[0])&&(0xB1==Buf_Reci[1])&&(0x05==Buf_Reci[6])&&(0x01==Buf_Reci[9])&&(0xFF==Buf_Reci[13]))
- {
- SPEAKER_CTL1(OFF);
- msDelay1(1000);
- WriteReciPoint=0;
- Buf_Reci[13]=0;
- memset(Buf_Reci,0,sizeof(Buf_Reci));
- }
- else if((0xEE==Buf_Reci[0])&&(0xB1==Buf_Reci[1])&&(0x05==Buf_Reci[6])&&(0x00==Buf_Reci[9])&&(0xFF==Buf_Reci[13]))
- {
- SPEAKER_CTL1(ON);
- msDelay1(1000);
- WriteReciPoint=0;
- Buf_Reci[13]=0;
- memset(Buf_Reci,0,sizeof(Buf_Reci));
- }
- else if((0xEE==Buf_Reci[0])&&(0xB1==Buf_Reci[1])&&(0x14==Buf_Reci[2])&&(0x08==Buf_Reci[6])&&(0x1A==Buf_Reci[7])&&(0x00==Buf_Reci[8])&&(0xFF==Buf_Reci[13]))
- {
- SPEAKER_CTL1(ON);
- msDelay1(1000);
- WriteReciPoint=0;
- Buf_Reci[13]=0;
- memset(Buf_Reci,0,sizeof(Buf_Reci));
- }
- else if((0xEE==Buf_Reci[0])&&(0xB1==Buf_Reci[1])&&(0x14==Buf_Reci[2])&&(0x08==Buf_Reci[6])&&(0x1A==Buf_Reci[7])&&(0x01==Buf_Reci[8])&&(0xFF==Buf_Reci[13]))
- {
- SPEAKER_CTL1(OFF);
- msDelay1(1000);
- WriteReciPoint=0;
- Buf_Reci[13]=0;
- memset(Buf_Reci,0,sizeof(Buf_Reci));
- }
- else if((0xEE==Buf_Reci[0])&&(0xB1==Buf_Reci[1])&&(0x14==Buf_Reci[2])&&(0x08==Buf_Reci[6])&&(0x1A==Buf_Reci[7])&&(0x02==Buf_Reci[8])&&(0xFF==Buf_Reci[13]))
- {
- SPEAKER_CTL1(ON);
- msDelay1(1000);
- WriteReciPoint=0;
- Buf_Reci[13]=0;
- memset(Buf_Reci,0,sizeof(Buf_Reci));
-
- }
- }
- }
复制代码 这是我的程序,没收到一段报文时,进行判断,判断后无论是否正确都进行清除,以上的代码并没有达到目标,大家帮我提一下建议
|
|