ajfan 发表于 2013-1-24 22:28:57

请教个UART中断执行步骤的问题

本帖最后由 ajfan 于 2013-1-24 22:31 编辑

请教各位关于UART接收到串口发出的字符后中断处理的问题:
第1个问题,每接收到一个字节后的中断是从语句1开始,然后关中断,只执行一次if(RI0),然后再开中断,然后第2个字符,循环上面的中断处理,直到接收完所有的字符?
   或是接收到一个字节后中断从语句1开始,然后关中断,然后执行N次 if(RI0),直到接收完所有字符后退出循环,再开中断,然后退出中断处理?
void UART0_ISR (void) interrupt 4
{
语句1;
语句2;
EA=0;//关中断
if(RI0)
    {
      RI0=0;
      UART0_Buffer = SBUF0;    //把从串口读出的字符存到数组
    com_dat++;
   }
   EA=1;          
}

第2个问题,如果用8051f的USB调试器硬件仿真uart程序,是不是调试时不能响应UART中断?
谢谢。

yklstudent 发表于 2013-1-24 23:11:04

{:shutup:}{:shutup:}{:shutup:}{:shutup:}

amen 发表于 2013-1-25 09:23:10

第1个问题我觉得应该是执行一次后退出中断,再收完一个字节,再次进入中断。应该不会在中断内执行N次 if(RI0)
第2个不太了解

ajfan 发表于 2013-1-25 17:18:02

还有专家指点下么
页: [1]
查看完整版本: 请教个UART中断执行步骤的问题