请教串口通信问题
主机发数据,数据经过485,到已经到从机的RXD脚上了,但是我的从机没反应,用仿真器看了一下,程序就在
while(RI!=1);处循环等待,不知道是什么原因,
从机接受:
void C_serial_receive()
{
unsigned char aa=0;
while(RI!=1); //接受时程序就在这里等待,(但是我这时在RXD脚上已经检察到主机发来的数据)不知道什么原因他不RI置,
我用仿真器看了,接受SBUF为0,请问这是什么原因
RI=0;
aa=SBUF;
if(aa!=0)
led1=~led1;
C_delay10ms(200);
}
main()
{
P1=0xf0;
led1=0;
C_delay10ms(100);
led1=1;
TMOD=0X20;
TH1=0x0e8;
TL1=0x0e8;
PCON=0X00;
SCON=0X50;
EA=1;
ES=1;
R485=1;
TR1=1;
R485=~R485; //485=0
while(1){
C_serial_receive();
}
}
主机发送:
void Master_send()
{
unsigned char i,j;
R485=~R485; //1
while(1)
{
P2=0xf0;
led1=0;
for(i=0;i <8;i++)
{
SBUF=0x01;
while(TI==0);
TI=0;
}//for
led1=0;
delay10ms(30); //delay
// led1=1;
} //while
}//void
main()
{
TMOD=0X20;
TH1=0x0e8;
TL1=0x0e8;
PCON=0x00;
TR1=1;
R485=0;
sw1=1;
P2=0x0f; //led bright
while(sw1==1);
sw1=1;
P2=0xf0; //led bright
Master_send();
}
发表时间:2006年9月4日16:11:59