PIC16F877的一个串口接收程序的疑问,RCIF可以不清零吗?

2020-02-10 08:50发布

这个程序是老大写的,给我学习,但是,就我这才学2周不到的水平,这种中断的写法有些看不明白啊?他的程序在中断初始化里设置了RCIE=1;GIE=1;PEIE=1;然后在中断程序里是这样写的:

while(RCIF)     //串行接收中断识别
    {
     
     Buf_usart[ Buf_usart[0]]=RCREG;
     RcvLength++;
      
     if(Buf_usart[0]>100)
         Buf_usart[0]=1;
     else   
         Buf_usart[0]++;     //指针+1 ,指针也是接收buf中的总数据数
     //RCIF=0;
     while(OERR)//OERR为1表示有溢出错误位,将CREN清零可以将其清零
     {
      CREN=0;
         CREN=1;
     }
     Flg_ChkCountUart=1;  

     Flg_ChkUart=0;
     CountUart=0;
    }

这个里面似乎把RCIF=0给注释起来了啊?不把RCIF清零能行吗?反正这个项目样品已经做出来了,测试也通过了,不知道这个RCIF不清零能行吗?我看了整篇代码,就这个地方有个被注释起来的RCIF=0;其他地方都没有了!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。