yu305053463 发表于 2014-4-8 22:57:32

嵌入式开发串口中断实验求助

从串口输入数据,通过中断方式接收,并且根据接收的数字决定LED的闪烁情况。问题:我未输入的情况下,主程序正常进行循环(已用LED测试),一旦我从串口输入数据后,循环立即终止,而且不进入到串口中断服务函数中,请问这是为什么?
下面是部分代码:
void __irq UART0_RxInt()
{
        char a;
        INTMSK=0xffffffff;               
        a=UTXH0;
                if(a==1)
                {        GPFDAT=0;
                        delay(1000);
                        GPFDAT=0xff;
                        delay(1000);
                }
                else
                {
                                GPFDAT=0xff;
                                delay(2000);
                                GPFDAT=0;
                                delay(2000);
                       
                }
        ClearPending(BIT_UART0);
        ClearSubPending(BIT_SUB_RXD0);
        EnableIrq(BIT_UART0);
        EnableSubIrq(BIT_SUB_RXD0);
}
       

void InitInt()
{

        ClearPending(BIT_UART0);
        ClearPending(BIT_SUB_RXD0);
        EnableIrq(BIT_UART0);
        EnableSubIrq(BIT_SUB_RXD0);
        pISR_UART0=(unsigned)UART0_RxInt;
}
int main()
{

        GPFCON=0x5500;
        GPFUP=0;
        GPFDAT=0xff;
        ULCON0=0x03;
        UFCON0=0x06;   
UMCON0=0x00;   //高电平触发
UCON0=0x05;   
UBRDIV0=26;        //UBRDIV0=( (int)(PCLK/16*baud)-1 );baud=50MHZ
        InitInt();
        while(1)
        {
       
        }
        return 0;
}


yu305053463 发表于 2014-4-8 22:58:15

跪求各位好汉解答,已经困扰好多天了!

沉思的牛 发表于 2014-4-8 23:19:03

楼主我也没有用过你那片子;
反正一般的初始化过程:设置中断向量号   开总中断,开串口中断设置波特率
楼主我水平有限其他只有你自己检查了;

哈姆戈多 发表于 2014-4-8 23:39:56

建议楼主对照数据手册再瞧瞧 中断的配置。还有建议楼主不要在中断里编过多的码,中断里做一个标识,弄到主程序里根据标识判别就好。
页: [1]
查看完整版本: 嵌入式开发串口中断实验求助