|
请大家看看我的串口1接收中断怎么进不去呢?有程序
[复制链接]
请教大哥,我的串口1的接收中断怎么就进不去呢?我的串口的初始化程序和串口的中断程序如下,现在是串口的发送可以,可是串口中断就是进不去,我在串口中断程序中设置了
断点,程序全速运行,给串口发送一个数据,程序就是停不下来,进不去,请大哥帮忙!
主程序中用_EINT();开总的中断。
void Init_uart(void) //串口初始化函数
{ U1CTL|= SWRST;
ME2=URXE1+UTXE1; //模块使能
U1TCTL=SSEL1+URXSE; //选择SMCLK
U1BR0=0x45; //设置拨特率因子
U1BR1=0x00; //设置拨特率因子
U1MCTL=0x4A; //设置调整因子
U1CTL|=CHAR; //设置通信数据形式
U1CTL &= ~SWRST; //串口设置结束之后SWRST标志位清零,考察在程序的开始位置是否需要置1
IE2|= URXIE1; //只有接收中断使能
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void UART1send(uchar send) //发送一个字节数据的子程序
{ uchar i=0;
TXBUF1=send;
while((U1TCTL&0x01)==0);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
interrupt[UART1RX_VECTOR] void UART1RX(void) //串口接收中断子程序
{ uchar i=0;
IE2&=~URXIE1; //关闭串口的接收中断 IE2|=URXIE1;
b=50;
for(i=0;i<sum;i++)
{ while((IFG2 & URXIFG1)==0);
rxdbuff[i]=U1RXBUF;
}
IE2|=URXIE1; //打开串口的接收中断
}
|
|