单片机控制TC35i GSM 模块的问题单片机发给模块的每句AT指令结束的回车在c语言里面要怎么表示,\r还是\r\n还是什么比如我是直接puts ("AT\r");的。然后单片机连接模块后发不了短信,求解释
回复 楼主 chaosyp 的帖子
如果你不确定是\r 还是\n那么你都写上就可以
然后单片机连接模块后发不了短信,求解释?
你都用了哪些命令,回复的内容是什么,你说一下我就知道怎么回答你了
二种方式发送短信:
1:文本方式
2:PDU编码方式
[ 本帖最后由 daicheng 于 2011-3-5 10:08 编辑 ]
我现在要做一个project要用单片机控制TC35i发短信
然后是的大致步骤就是
puts ("AT\r");
delay;
puts ("AT+CMGF=1\r");
delay;
puts ("AT+CSMP=17,167,0,0\r");
delay;
puts ("AT+CSCS=GSM\r");
delay;
puts ("AT+CMGS=手机号码\r");
delay;
puts("短信内容");
purchar (0x1A);
我用电脑连GSM模块用这个指令发出了短信
我单片机连电脑在超级终端上面能显示出我单片机发了指令
但是我连GSM模块之后发不了短信
所以我怀疑是我的指令表达出了点问题了
回复 4楼 汉江之源 的帖子
你命令没有问题,只是你没有做数据回复的处理,你用电脑监听一下你发送与接收的过程
什么叫数据回复的处理,每发完一个指令后模块都会返回一个OK,但是我觉得不管返回的OK直接向模块发送指令也可以实现发送短信的吧
回复 6楼 chaosyp 的帖子
只是想让你能知道程序运行与模块操作的情况
回复 7楼 daicheng 的帖子
您所谓的用电脑监听发送和接受的过程是怎么个情况。用串口助手?
还有我的程序真的没问题。普通AT指令的结束是以回车来结束的,那么我在C里面是要写\r还是\n还是\r\n呢?
回复 8楼 chaosyp 的帖子
做这样的程序就是要监听你发送的数据与模块返回的数据,就知道就那个部分出问题了。
比如你发送了,AT +0x0D 模块没有回复OK ,那么就可以分析问题
发送短信也是:
at+cmgf=1
返回 OK
at+cmgs=手机号
返回 >
发送 数据 +0x1A
返回 OK
如果哪步不正确就知道错误的地方,还可以加入信号强度的判断等等,我说的是这个意思
AT命令结束就0X0D,在写的时候如果知道就可以全部加上,模块返回肯定是0x0D 0x0A