打印

最近比较晕,请高手看看这程序有没漏洞

[复制链接]
1145|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chenczy|  楼主 | 2011-12-8 09:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TE, se, AN, omnet, TI
void UartISR(void) interrupt 4   //接收数据
{

if(RI)    //收到数据
  {          
     DATA1[Num]=SBUF;
     if(DATA1[0]==0x55) Num++;  
         else Num=0;
       
        if(Num>2)
         {
          if(Num==4)
           {
             if(DATA1[3]==0x77)
                  {                         
                   Num=0;
               if((DATA1[1]==1)&(DATA1[1]==DATA1[2]))
                    {
                     handshake=1;
                    }
                   else if((DATA1[1]==2)&(DATA1[1]==DATA1[2]))
                    {
                     handshake=0;
                   }
                   DATA1[0]=DATA1[1]=DATA1[2]=DATA1[3]=0;
                 }
            }
          else if(Num==5)
           {
            if(DATA1[4]==0x77)
                 {
                   Num=0;
                   temp=(DATA1[1]+DATA1[2]);
                   if((DATA1[1]==4)&(DATA1[3]==temp))
                    {
                         motor=DATA1[2];
                        }
                   else if((DATA1[1]==5)&(DATA1[3]==temp))
                    {
                     comnet=DATA1[2];
                    }
                        DATA1[0]=DATA1[1]=DATA1[2]=DATA1[3]=DATA1[4]=0;
                 }
           }
      else if(Num==7)
           {  
                 Num=0;
            if(DATA1[6]==0x77)
                 {               
              temp=(DATA1[1]+DATA1[2]+DATA1[3]+DATA1[4]);
              if((temp==DATA1[5])&(DATA1[6]==0x77))
          {
            DATA2[0]=DATA1[2];
                        DATA2[1]=DATA1[3];
                        DATA2[2]=DATA1[4];
                        DATA1[0]=DATA1[1]=DATA1[2]=DATA1[3]=DATA1[4]=DATA1[5]=DATA1[6]=0;       
          }
                  }
           }          
        }
   RI=0;   //清中断请求
  }
}

相关帖子

沙发
yuyi21ic| | 2011-12-8 11:07 | 只看该作者
看了下,只要注意num该在何处清0 就OK。不过这if太多 了,中断函数看起来有点长。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

141

主题

791

帖子

0

粉丝