本帖最后由 清风致影 于 2010-11-22 19:39 编辑
以下是源程序:
uchar Temp[100]={"123456ABCdddWCT"};
uchar code ta[14][4] ={"ABC","BCC","UQC","WCD","WTO","CLL","OKL",};
mai()
{
uchar (*p)[4],*sp;
RS232_int();//串口初始化
p=ta;
sp = strstr(Temp,*p);
if(sp==NULL)
{
SBUF='X';
while(!TI);
TI=0;//没找到字符串
}
else
{
SBUF='Y';
while(!TI);
TI=0;////找到字符串}
}
}
strstr功能是从字符串Temp中寻找*p第一次出现的位置,并且返回指针给sp
但是单片机发出来的结果老是'X',不知道为什么,
如果在sp = strstr(Temp,*p);之后加个延时,单片机发出来的结果却是'Y'.请教大家这是什么原因?用的是s52单片机 |