嵌入式开发串口中断实验求助
从串口输入数据,通过中断方式接收,并且根据接收的数字决定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;
}
跪求各位好汉解答,已经困扰好多天了! 楼主我也没有用过你那片子;
反正一般的初始化过程:设置中断向量号 开总中断,开串口中断设置波特率
楼主我水平有限其他只有你自己检查了; 建议楼主对照数据手册再瞧瞧 中断的配置。还有建议楼主不要在中断里编过多的码,中断里做一个标识,弄到主程序里根据标识判别就好。
页:
[1]