串口通讯的一点问题,求指教

2020-02-02 09:34发布

本帖最后由 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秒亮或者灭一次,以后也保持这样
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
devcang
1楼-- · 2020-02-02 13:26
你也说串口通讯,那串口通讯也是要时间的。
fgl2599
2楼-- · 2020-02-02 13:58
 精彩回答 2  元偷偷看……
slotg
3楼-- · 2020-02-02 17:35
看不出问题, 但是类似的状况我碰过: 原因是中断后没有清除中断旗标, 导致不断的进入中断回路, 而让主回路的执行变慢.
876192514
4楼-- · 2020-02-02 19:47
把中断里的发送功能去掉 或者试试关闭接收功能发送完再打开 就没事了应该
adcr
5楼-- · 2020-02-03 00:01
请记住,发送也会引起串口中断,中断又中断,中断何其了!堆栈满了就复位

一周热门 更多>