求助--关于数据存储
我写了一个简单的串口调试程序,把从串口输入的以“a"为结尾的数据存储到一个字符数组,当串口输入”b “时,程序将存储的数据发到PC机上。但是数据总是按照初始赋的值发出来。调试了很久了,找不出原因,麻烦各位帮看代码有什么问题?
#include <reg52.h>
#include <string.h>
#define uchar unsigned char
uchar r_buf[32];
uchar r_ready=0,t=0,r_in;
uchar user1_IP[20]={"987654321"};
serial () interrupt 4 using 1 //transmit and receive interupt
{
uchar temp;
if(RI)
{
RI=0;
temp=SBUF;
r_buf[r_in++]=temp;
if(temp==0x61)
r_ready=1;
if(temp==0x62)
t=1;
}
}
main()
{
uchar i;
TMOD=0x20;
TL1=0xfd;
TH1=0xfd;
TCON=0x40;//启动定时器
SCON=0x50;
PCON=0x00;
IE=0x90; //允许串行口中断
while(1)
{
//RI=1;//??????????????????????????????
if(r_ready==1)
{
r_ready=0;
for(i=0;i <r_in;i++)
{
user1_IP[i]=r_buf[i];
r_buf[i]=0;
SBUF=user1_IP[i];
while(TI==0);
TI=0;
}
r_in=0;
}
if(t==1)
{
t=0;
for(i=0;i <strlen(user1_IP);i++)
{
SBUF=user1_IP[i];
while(TI==0);
TI=0;
}
}
}
}
发表时间:2004年11月4日15:13:56