部分程序如下,我用keil
仿真器单步执行的时候到 【 p1=strstr(Sbuf_rec,ON); //检查短信中是否有on字符】这一步就进行不下去了,我觉得是因为查找特定字符串这里出了问题,希望高手可以解答一下,万分感谢!!!
#include <reg52.h>
#include <stdio.h>
#include <string.h>
#define uchar unsigned char
#define uint unsigned int
uchar code ANSWER1[]="On,DL:40mA,DY:5V"; //模拟短信回复内容1
uchar code ANSWER2[]="OFF"; //模拟短信回复内容2
uchar code ANSWER3[]="ON"; //模拟短信回复内容3
uchar code ON[]="on"; //设置短信内容特殊字符串“on”
uchar code OFF[]="off"; //设置短信内容特殊字符串“off”
uchar code ASK[]="ask"; //设置短信内容特殊字符串“ask”
uchar Sbuf_rec[80]; //存放接收的字符串
/********************************************************************************************
* 函数名称*strstr(char *str,char *sub_str)
* 功 能:查找字符串函数
********************************************************************************************/
char *strstr(char *str,char *sub_str)
{
int i=0,j=0;
while(str[i]!=' '&&sub_str[j]!=' ')
{
if(str[i]==sub_str[j])
{
i++;
j++;
}
else
{
i=i-j+1;
j=0;
}
}
if(sub_str[j]==' ')
return (char *)(str+i-j);
return NULL;
}
void main (void)
{
uchar *p1,*p2,*p3;
INIT();//初始化串口程序
while (1)
{
MC52i_read(); //读短信程序
p1=strstr(Sbuf_rec,ON); //检查短信中是否有on字符
if(p1!=NULL)
{
// 符合该条件时执行对应程序
}
p2=strstr(Sbuf_rec,OFF);//检查短信中是否有off字符
if(p2!=NULL)
{
// 符合该条件时执行对应程序
}
p3=strstr(Sbuf_rec,ASK); //查询工作状态
if(p3!=NULL)
{
// 符合该条件时执行对应程序
}
}
}
一周热门 更多>