单片机控制GSM模块发短信,程序

下面是程序,不知道程序错在哪,发短信不成功。确定了硬件方面没有错误,求大神,谢谢!#include<reg52.h>#defineuintunsignedint#defi... 下面是程序,不知道程序错在哪,发短信不成功。确定了硬件方面没有错误,求大神,谢谢!
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit key=P3^4;

void delay(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}

void send(uint sdata)
{
SBUF=sdata;
while(TI==0);
TI=0;
}

void main()
{
SCON=0x40; //SM1=1,其他为0
TMOD=0x20;
PCON=0x00;
TH1=0xfd;
TL1=0xfd;
TI=0;
TR1=1;
REN=1;
key=1;
EA=1;
ES=1;
while(1)
{
if(key==0)
{
delay(10);
if(key==0)
{
send ("AT+CMGF=0\r\n");
delay(1000);
send ("AT+CMGS=25\r\n");
delay(1000);
send ("0891683108401505F011000D91688121163768F20008000A6211723153557247673A");
delay(2000);
send (0x1a);
}
}
}
}
是用的stc89c52rc控制的GSM模块
展开
 我来答
做而论道
高能答主

2014-04-19 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
void send(uint sdata)--这是发送一个字节的函数
{
SBUF=sdata;
while(TI==0);
TI=0;
}

send ("AT+CMGF=0\r\n");
send ("AT+CMGS=25\r\n");

发送一个字节的函数,在这里,你却用它发送字符串?

----
单片机发出的东西,你先不要急着送到手机模块。
先送到 PC 的串口助手,看看,你都发出了什么。
追问
那请问怎样把那个函数改为发送字符串呢,谢谢
追答
编程呗。

看看我的百度空间,串口通信的程序,有很多的。
碎片兽
2014-04-19
知道答主
回答量:31
采纳率:100%
帮助的人:13.1万
展开全部
- -请你仔细去看下你的AT指令。格式要求很严格
追问
AT指令没错误,我在GSM串口调试助手上这样是可以成功的,但是用单片机不能成功,不知道程序错在哪
追答
发:AT
收:OK
发:AT+CMGF=1
收:OK
发:AT+CMGS=135xxxxxxxx号码
收:>
发:data→ //test 为发送内容,→为发送符(ctrl+z,十六进制0x1A)
收:+CMGS: 54 OK
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式