winnie 发表于 2009-3-20 14:13:28

进中断后出不来??

请教各位:串口中断通讯的程序,进中断后出不来了,是那里有问题。运行程序后LED1灭、LED2亮。通过PC机发一个数据,单片机进入中断,LED1灭、LED2亮。
出中断后应该LED1亮、LED2亮,可信号一直没来。
#include <pic.h>
#include <pic1687x.h>
__CONFIG(WDTDIS&HS&LVPDIS);   
static unsigned char data;
void sciint()
{   SPBRG=0X47;
    TXSTA=0X04;
    RCSTA=0X80;
TRISC6=1;    //将RC6,RC7设置为输入方式,对外部呈高阻状态
    TRISC7=1;    //将RC6,RC7设置为输入方式,对外部呈高阻状态
    RC3=0;       //RS485接收使能
}
void main()
{
TRISC2=0;
TRISC1=0;
TRISC3=0;      
TRISC4=0;
sciint();
PEIE=1;
GIE=1;
RC2=1; //LED1,测试用
   while(1)
   {   CREN=1;
       TXEN=0;
       TXIE=0;
       RCIE=1;
       RC4=0;   //LED2,测试用
       RC3=0;       //RS485接收使能*/

    }
   
}   
static void interrupt WWF(void)
{
       RC2=0;//LED1,测试用
       RC4=1; //LED2,测试用
      if(i<=32767)
   {i++;}
}

winnie 发表于 2009-3-20 14:13:52

你的个循环等待不应该放那的.你那样就一直在做那些没有必要的动作
我看你的中断是接收中断哦,如果你不读一下接受缓冲区,中断接受标志位就不能清零哦

而且你哪个

if(i<=32767)
   {i++;}    //你是做延时的吧
也是不对的,如果你第二次中断的话就没有延时拉哦,在后面最好加个i=0;
页: [1]
查看完整版本: 进中断后出不来??