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

[复制链接]
1758|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

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