打印
[PIC®/AVR®/dsPIC®产品]

PIC16F877A的串口跟捕获中断问题

[复制链接]
1131|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
想通过这段中断程序来控制定时器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

粉丝