串口中断程序处理
语句while(RI==0){watchdog();}分析:
1、如果中断由接收数据产生,程序可以正常接收数据。
2、如果中断由发送数据产生,程序则进入一个死循环陷阱。
可以在程序中增加一个发送标志Send_Flg,发送数据时Send_Flg置1,发送完数据一定
要清零,这样修改程序试一试:
void port(void) interrupt 4 using 2
{
if(!Send_Flg){
while(RI==0){watchdog();}
Buffer=SBUF;
P2_0=0;
RCVBYTEOK=1;
RI=0;
}
}
发表时间:2002年5月20日23:44:00