本帖最后由 ajfan 于 2013-1-28 08:47 编辑
原来普通帖子发过,无奈关注的人不多,只好用悬赏看是否可以有大侠能帮忙解答下
请教各位关于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[com_dat] = SBUF0; //把从串口读出的字符存到数组
com_dat++;
}
EA=1;
}
第2个问题,如果用8051f的USB调试器硬件仿真uart程序,是不是调试时不能响应UART中断?
谢谢。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
{
语句1;
语句2;
// EA=0; //关中断
if(RI0)
{
RI0=0;
if( com_dat>=sizeof(UART0_Buffer))
{
com_dat=0;//或者使用其他方式处理缓冲区溢出
}
UART0_Buffer[com_dat] = SBUF0; //把从串口读出的字符存到数组
com_dat++;
}
// EA=1;
}
一周热门 更多>