请教:一个关于“UART”连接通信问题
void UART_IoInit() //初始化{
CLKCON = 0X18; //一分频
OSCCON = 0X00;
SYM = SYM & (~0X01); //关闭全局中断
BTCON = 0xA3; //关闭看门狗定时器
LPOT = 0X00;
IMR = IMR | 0X80; //中断屏蔽寄存器
P2CONL |= 0XF0; //P2设置为UART
BRDATAH = 0X00; //9600波特率,6.144MHZ晶振,设置波特率数据寄存器
BRDATAL = 0X27;
UARTPND=0x00;
SYM = SYM | 0X01; //打开全局中断
UARTCON = 0X52; //选择mode1,允许接收中断,接收使能
}
void UART_DataSend(void) //发送数据
{
UDATA=1;
delay(1000);
while( !(UARTPND & 0X01))
{ ;
}
UARTPND &=~(0x01);
}
void main(void)
{
UART_IoInit();
UART_UartInit();
Led_Init();
while(1)
{
led3();
delay(30000);
led2();
delay(30000);
UART_DataSend();
}
}
一块三星单片机,部分代码,想向高手请教一下,发送完成后,发送中断标志位为什么不挂起?
导致 在这一段
while( !(UARTPND & 0X01))
{ ;
}
UARTPND &=~(0x01);
死循环,卡在这