英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 3530|回复: 1
打印 上一主题 下一主题

进中断后出不来??

[复制链接]
跳转到指定楼层
1#
发表于 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++;}
}
2#
 楼主| 发表于 2009-3-20 14:13:52 | 只看该作者
你的个循环等待不应该放那的.你那样就一直在做那些没有必要的动作
我看你的中断是接收中断哦,如果你不读一下接受缓冲区,中断接受标志位就不能清零哦

而且你哪个

if(i<=32767)
     {i++;}    //你是做延时的吧
也是不对的,如果你第二次中断的话就没有延时拉哦,在后面最好加个i=0;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-11-24 04:45 , Processed in 0.051992 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表