这个程序是老大写的,给我学习,但是,就我这才学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;其他地方都没有了!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
在PIC中还有一些位是不能用软件清0的,只有在特定的情况下被硬件自动清0,如TXIF,TRMT等。
一周热门 更多>