S52串行口接收不了数据

来源:百度知道 编辑:UC知道 时间:2024/09/23 07:30:39
#include <reg51.h>
void delay(unsigned char i)
{unsigned int y;
while(i--)
{for(y=0;y<5;y++);}}
main()
{ PCON=0;
P2=0x7f;
TMOD=0x20;
TH1=0xfd;

TR1=1;
SCON=0x50;
while(1)
{
SBUF=P2;
while(RI==0) ;
RI=0;
delay(15);
P0=SBUF;

TI=0;
}
}

其他的不说,就说你的接收部分指令,你连接收有没有完成都不检查,直接就把缓冲区的值送出去,那样肯定不行,应该是:
while(TI==0);
P0=SBUF;
TI=0;