|
c8051f020串口1UART1发送数据的问题。
[复制链接]
大虾们好,以下是我的UART1中断函数
void UART1 (void) interrupt 20 using 2
{
unsigned char xdata tChar=0;
EIE2 &= 0xBF;
RI1Flag=(SCON1 & 0x01);
TI1Flag=(SCON1 & 0x02);
if (RI1Flag == 0x01)
{
tChar = SBUF1;
SCON1 &= 0xfe;
}
if(TI1Flag == 0x02)
{
SCON1 &= 0xfd;
TI1Flag = 0;
}
EIE2 |= 0x40;
}
以下为在主程序中发送0x1f
while(1)
{
SCON1 = SCON1 & 0xfd;
SBUF1 = 0x1f;//通过UART1发送1F;
while((SCON1 & 0x02) == 0);//为什么程序死在这里,不动了,好象一直是在等待
SCON1 = SCON1 & 0xfd;
}
用串口精灵能接受到此数据,但是程序一直停留在while((SCON1 & 0x02) == 0);而且根据跟踪,也没有进串口1中断函数,请问这是为什么?
还有,c8051f020的在什么情况下会引发串口1中断
谢谢!
|
|