打印
[S3C2440]

中断串口程序哪里错了,就是进不去中断,而且灯也不亮

[复制链接]
1175|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lantian510|  楼主 | 2013-11-20 21:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
中断串口程序哪里错了,就是进不去中断,而且灯也不亮
#include"2440addr.h"
void uart0_init(void);
void uart_int_init(void);
void __irq uart_int(void);
void led_init(void);
int  Main()
{
    uart0_init();
    uart_int_init();
    led_init();
     rGPBDAT&=~(1<<5);
      while(1);
     return 0;
}
                                                                                                                                                            
void uart0_init()
{
    rGPHCON&=~((3<<4)|(3<<6));
    rGPHCON|=((2<<4)|(2<<6));
    rGPHUP|=((0<<2)|(0<<3));
    rULCON0|=(3<<0);
    rUCON0=05;
    rUBRDIV0=(int)(50000000/(9600*16))-1;
    rURXH0=0;
}
void uart_int_init()
{
    rINTMSK&=~(1<<28);
    rINTSUBMSK&=~((1<<0)|(1<<1));
   pISR_UART0=(unsigned int)uart_int;       
}
void __irq uart_int()
{
      unsigned char a;
      rGPBDAT&=~(1<<5);
    if(rSUBSRCPND&(1<<0))
    {
        a=rURXH0;
        rGPBDAT&=~(1<<5);
        rSUBSRCPND|=1<<0;
          rUTXH0=a;
    }
    if(rSUBSRCPND&(1<<1))
   {
       rGPBDAT&=~(1<<6);
      rSUBSRCPND|=1<<1;
   }
    rSRCPND|=1<<28;
    rINTPND|=1<<28;
}
void led_init()
{
    rGPBCON&=~((3<<10)|(3<<12));
    rGPBCON|=((1<<10)|(1<<12));
    rGPBUP&=~((1<<5)|(1<<6));
    rGPBDAT|=((1<<5)|(1<<6));
}








相关帖子

沙发
phonelong| | 2013-11-21 09:43 | 只看该作者
看看中断向量表有没有搞对,如果是仿真看看中断向量表有没有映射到0X0

使用特权

评论回复
板凳
airwill| | 2013-11-21 18:17 | 只看该作者
就是进不去中断,会不会是初始化有问题, 或者串口数据没有输入进去

使用特权

评论回复
地板
@渐行渐远@| | 2013-11-22 09:27 | 只看该作者
是不是没有开mmu?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

42

帖子

1

粉丝