串口通讯的一点问题,求指教
本帖最后由 fgl2599 于 2012-10-29 22:51 编辑最近再用,STC12C的单片机,发现一个很奇怪的现象,下面是简单程序
程序改成中断方式。
void uart_isr()interrupt 4
{
if(RI)
{
sbuf=SBUF;
SBUF=sbuf;
while(!TI)
TI=0;
RI=0;
}
}
void main()
{
AUXR=0x80;
SCON=0x50;
TMOD=0x20;
TH1=TL1=-(FOSC/12/32/BAUD);
TR1=1;
ES=1;
EA=1;
while(1)
{
led=~led;
delayms(500);
}
}
开机500MS灯亮或灭一次,一次串口中断后,灯大概5秒亮或者灭一次,以后也保持这样 你也说串口通讯,那串口通讯也是要时间的。 有人来看看嘛 看不出问题, 但是类似的状况我碰过: 原因是中断后没有清除中断旗标, 导致不断的进入中断回路, 而让主回路的执行变慢. 把中断里的发送功能去掉 或者试试关闭接收功能发送完再打开 就没事了应该 请记住,发送也会引起串口中断,中断又中断,中断何其了!堆栈满了就复位
页:
[1]