打印

请教一些单片机 和GSM模块连接的问题

[复制链接]
3475|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
putian960|  楼主 | 2007-2-12 22:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近我在做单片机和GSM模块连接的实验.主要是想运用AT指令实现短信的收发,现在还在起始阶段,遇到一些编程方面的问题,向各位请教。
关于发送短信的命令比方说,我先把GSM模块和电脑串口相连,我在超级终端(或串口调试助手)里输入命令:
输入: AT
输出:OK
输入:AT+CMGF=0      (这里把它设为PDU格式)
输出:OK
输入:AT+CMGS=21
输出: >
输入:0891683108200505F011000D91683119032069F000000006C8329BFD0E01
接着按CTRL+Z短信就被发送
我想把这些转换成C语言,写入单片机,然后把单片机和电脑串口相连,
我看到一些介绍说是要把输入的命令都改写成ASCII形式,我试着写了下面的程序
#include <REG52.H>
#include <stdio.h>
void main(void)
{int i,j;
SCON = 0x50; 
TMOD = 0x20; 
TH1 = 0xFA; 
TL1 = 0xFA;
TI = 1;
TR1 = 1;
printf("41H54H2BH43H4DH47H46H3DH30H0DH");  //AT+CMGF=0
for(i=0;i<=10000;i++)
for(j=0;j<=20;j++);
printf("41H54H2BH43H4DH47H53H3DH32H31H0DH");   //AT+CMGS=21
for(i=0;i<=10000;i++)
for(j=0;j<=20;j++);
printf("30H38H39H31H36H38H33H31H30H38H32H30H30H35H30H35H46H30H31H31H30H30H30H44H39H31H36H38H33H31H31H39H30H33H32H30H36H39H46H30H30H30H30H30H30H30H30H36H43H38H33H32H39H42H46H44H30H45H30H31H0DH"); //0891683108200505F011000D91683119032069F000000006C8329BFD0E01 
for(i=0;i<=10000;i++)
for(j=0;j<=10000;j++);
}
但是连接后gsm模块没有什么反应,希望能得到您的指点,我的程序哪里有问题,要发送短信需要怎样的步骤,谢谢你的指教

相关帖子

沙发
Ice_River| | 2007-2-13 08:24 | 只看该作者

你这种方式能把数据从串口发出去吗?

printf 能用于串口通讯吗?
建议先用TEXT模式,通讯成功后换PDU

使用特权

评论回复
板凳
xyele| | 2007-2-13 08:44 | 只看该作者

天呀,楼主这样输出命令的?用16进制字符的,把H也加进去

     直接用字符就可以,如 PutString("AT+CMGF=0 "); 

使用特权

评论回复
地板
剑寒情暖| | 2007-2-13 09:22 | 只看该作者

你加引号了,就直接写字符就可以了

使用特权

评论回复
5
剑寒情暖| | 2007-2-13 09:23 | 只看该作者

自己写个串口函数,干吗要用printf

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

17

帖子

0

粉丝