找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

急!!!串口字符串比较问题

[复制链接]
admin 发表于 2012-9-2 08:23:00 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
求助高手,现要做一个切换开关,能过串口收字符串,然后输出一个电平。
但总不能实现,应该是串口收到的数据与主程序里的数组对比不对造成的,但又不知道怎么处理,想想这里有很多高手特来求助,请大家指教.
/**************************************************
功能说明:串口只接收
1、当串口收到以下字符串时将使一个IO口输出为低电平
AT+CTSP
AT+CTSDC
ATD
或者是AT+CTXD
2、当串口收到以下字符串时将使一个IO口输出为高电平
AT+CUTXC


***************************************************/

#include<STC_11FXX.H>
#include<intrins.h>
#include<string.h>
#include"Initial.c"
#define uchar unsigned char
#define uint unsigned int

sbit S=P1^4;
sbit RUN=P3^5;
uchar t;
uchar k;
uchar Rxbuf[8];
//uchar rxbuf1[8];
uchar code PressPTCommandChar01[]="AT+CTSP=1,0,0";
uchar code PressPTCommandChar02[]="AT+CTSDC=0,0,0,1,1,0,1,1";
uchar PressPTCommandChar03[]="ATD9269405";
uchar code PressPTCommandChar88[]="AT+CTXD=112,1";

uchar code ReleasePTCommandChar[]="AT+CUTXC=112";

void main()
{
uchar i,j;
Initial();
while(1)
{
for(i=0;i<7;i++)
{
if((Rxbuf[i]==PressPTCommandChar01[i])||(Rxbuf[i]==PressPTCommandChar88[i]))j=0;
if(Rxbuf[i]==ReleasePTCommandChar[i])j=1;
}
if(j)S=1;
else
S=0;
}
}
void serial(void) interrupt 4
{
if(RI==1)
{RI=0;
while(k==8)k=0;
Rxbuf[k]=SBUF;
SBUF=Rxbuf[k]; //发送
while(TI==0);
TI=0;
//保存
//将接收到的数据直接转发给电脑
}
}


void Timer0Rounte(void) interrupt 1 using 2
{

TL0 = 0x00; // 10MS
TH0 = 0xDC;

t++;
if(t==100)
{
t=0;
RUN=!RUN;
}


}
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-24 09:39 , Processed in 0.057007 second(s), 11 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表