单片机与gsm通信c语言,初学单片机,在进行GSM与单片机的双向通信时,单片机似乎不能接受到GSM发送的数据。...

菜鸟

2014-04-04 00:13:55

下面是我写的代码,不知错在哪,敬请指正。

#include

#define uchar unsigned char

#define uint unsigned int

uchar flag,i;

uchar temp;

uchar j=0;

uchar m=0;

sbit led1=P1^0;

sbit led2=P1^1;

uchar volatile table1[100]=0;

uchar volatile tableat[100]=0;

void delay(uint count) //delay

{

uint i;

while(count)

{

i=200;

while(i0)

i--;

count--;

}

}

void SerialInit() {

TMOD=0x20;

TH1=0xfd;

TL1=0xfd;

TR1=1;

SM0=0;

SM1=1;

REN=1;

EA=1;

ES=1;

}

void SerialSendChars(char *str)

{

while(*str!='\0')

{

SBUF=*str;

while(!TI);//等待发送完成信号(TI=1)出现

TI=0;

str++;

}

}

void main()

{

char add[2]={13,'\0'};

SerialInit();

ES=0;

SerialSendChars("ati\r");//ati初始化sim300模块

delay(550);

SerialSendChars("ati\r");//ati初始化sim300模块

delay(550);

SerialSendChars("ati\r");//ati初始化sim300模块

delay(550);

ES=1;

while(1)

{

if(flag==1)

{

if(tableat[0] == 'R' && tableat[1] == 'I' && tableat[2] == 'N' && tableat[3] == 'G')

{

led1=0;

}

if(tableat[0] == 'N' && tableat[1] == 'O' && tableat[2] == ' ' && tableat[3] == 'C' &&tableat[4] == 'A')

{

led2=0;

}

i = 0;

while(tableat[i] != 0)

{

tableat[i] = 0;

i++;

}

flag=0;

}

}

}

void ser() interrupt 4

{

if(RI == 1){

RI=0;

temp=SBUF;

table1[j]=temp;

j++;

if(j=99) j=0;

if(table1[j-2]==0x0d&&table1[j-1]==0x0a&&j=2)

{

j=0;

flag=1;

m=0;

while(table1[m]!=0){

tableat[m]=table1[m];

table1[m]=0;

m++;

}

}

}

}

补充问题描述:

单片机,

GSM

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值