[PIC®/AVR®/dsPIC®产品] PIC16F877A的串口跟捕获中断问题

[复制链接]
 楼主| 追梦的阿土哥 发表于 2015-6-8 16:03 | 显示全部楼层 |阅读模式
想通过这段中断程序来控制定时器1的捕获,但是发现只能接收一次串口的指令,不知道哪里有问题,还望大神指点一下~

oid interrupt usart(void)
{   
    if(RCIE&&RCIF)            //判断是否为串口接收中断
    {  
       RD0=!RD0;
       stage4=stage3;
       stage3=RCREG;
       if((stage4==0XFE)&&(stage3==0X68))
       {  begin=1;j=0;  }
       if(begin==1)
       {  
          receive[j++]=stage3;
          if((receive[j-1]==0X16)&&(j==9))
          {  begin=0;j=0;
             data=receive[3];
             if((receive[1]==0x13)&&(receive[3]==0x01))
               ccpint();      
             if((receive[1]==0X13)&&(receive[3]==0x00))
               PIE1=0x00;
          }
          if(j==20)
          {   j=0;  begin=0;}
          }}
      if(CCP1IF==1)
      {   CCP1IF=0;
          counter++;
          RD4=!RD4;
          TXREG=counter;
}   
}
 楼主| 追梦的阿土哥 发表于 2015-6-8 16:04 | 显示全部楼层
其中从串口发过来的指令是FE 68 13 68 01 00 00 00 00 16,关键指令就是第五位。
 楼主| 追梦的阿土哥 发表于 2015-6-15 21:06 | 显示全部楼层
没有人看自己照样能解决,也没那么难嘛~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

38

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部