菜鸟请教各位前辈,为什么一下这段程序会自动进入中断,我想要用上位机发送“0xff”,下位机才进行回应,但是我用串口助手发送0xff以后就中断就一直在循环,中断不是只有在接收到数据才会打开吗,为什么一直会打开,另外我用查询法也试了,查询法是可以,在线仿真时用串口助手可以发一次收一次,但是我烧录到单片机以后就不成功了,好郁闷,这是为什么啊,在线仿真可以,烧录以后就不行,求解,谢谢
void main()
{
init();
while(1)
{
//while(!RI);
//RI=0;
//temp=SBUF;
if(temp==0xff)
{
adval2=AD(2);
A1=adval2/100;
A2=adval2%100/10;
A3=adval2%10;
adval1=AD(1);
for(a=10;a>0;a--)
{
display(A1,A2,A3);
};
SBUF=adval1;
while(!TI);
TI=0;
delayms(10);
SBUF=adval2;
while(!TI);
TI=0;
delayms(10);
SBUF='O';
while(!TI);
TI=0;
temp=0;
ES=1;
}
}
}
void ser() interrupt 4
{
RI=0;
temp=SBUF;
if(temp==0xff)
{
ES=0;
RD=!RD; //这里接了个发光管可以明显看到,及时没有数据,还是自动进入中断
delayms(500);
flag=1;
}
}[/mw_shl_code] |