关于串口中断
void uart(void) interrupt 4 using 3
{
unsigned char i,j; 、
EA=0;
i=SBUF;
RI=0; //接收中断标志位
if((i==0x5b)||(i==0xfa))
{
while(!RI);
i=SBUF;
RI=0; //还要接收数据所以置0
if((i==0x5c)||(i==0xf5))
{
check=0;
while(!RI);
i=SBUF;
RI=0;
while(!RI);
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
}
大概如上代码,其中TI,RI标志很重要
TI串口发送完一组数据后的标志位
若串口发送完一组数据,则硬件置1,若还要发送数据,软件置0
RI串口接受完一组数据后的标志位
若串口接收完一组数据,则硬件置1,若还要接收数据,软件置0