单片机串口中断服务程序的问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 00:53:10
高手给我分析一下这个单片机与pc串口通信服务程序有什么问题,百思不得其解啊,拜谢了!
void ser() interrupt 4
{
if(RI)
{
a=SBUF;
P1=a;
RI=0;
}

if(TI)
{
SBUF=a;
TI=0;
}
}

void ser() interrupt 4
{
if(RI)
{
a=SBUF;
P1=a;
RI=0;
}

if(TI) //这里要先在主程序里发一个数才能触发中断 如 SBUF=0x00;
{
SBUF=a;
TI=0;
}
}

兄弟,你也不说出什么问题了,是不能运行,还是出什么错了

你中断重复了
if(TI)
{
SBUF=a; //发送完成后又会进入中断,再次发送
TI=0;
}

void ser() interrupt 4
{
if(RI)
{
a=SBUF;
SBUF=a;
P1=a;
RI=0;
}

if(TI)
{ TI=0; }
}