华秋商城
直播中

周莹

7年用户 201经验值
私信 关注
[问答]

单片机和GSM模块连接在一起使用没有反应

我用atmega128控制GSM模块TC35收短信。程序上我保证至少99%是没错的~
我在计算机上用串口调试助手测试GSM模块是没问题的。我把AT命令发给GSM模块,然后记录下它的返回信息。并且用其他手机发短信到GSM模块上的卡,其返回信息也没问题!!
然后我又在计算机上用串口调试助手对单片机进行测试。手动响应单片机发来的AT命令。比且还模拟短信到的那个+CMti: "SM",XX命令,单片机也能马上识别出短信到而发出AT+CMGR=XX命令,并且对我其后输入的模拟短信代码,如:+CMGR: 1,,26
0891683108808305F0040D91685188433431F8000811506102341323065E724EC04E48 也能够正确识别并进行处理!!
但是,当我把单片机和GSM模块连接在一起使用的时候,就是不行……没有反应……。
我单片机和GSM都是通过MAX232通信的。据说GSM的TTL电平和单片机的好像不太对得上,所有我就一直是使用232通信了。
就这部分,至少苦思冥想十几个小时了,,依然没有任何进展……求高手帮忙分析下是为什么呢。。非常感谢

回帖(13)

蔡丹青

2019-10-14 15:17:11
首先注意连接方式,GSM模块的串口与主控设备的串口是一顺连接的,不能交叉连接,其次,AT指令要以“回车”和“换行”符作为结束。
举报

倪梁靓

2019-10-14 15:29:35
串口的输入输出没有问题的,~
比如我是单片机的2口连电脑3口,单片机的3口连电脑2口,这样是正常通信
         GSM的2口连电脑2口,GSM的3口连电脑的3口,这样也是正常通信!
然后我的单片机的2口连GSM的2口,单片机的3口连GSM的3口。这样没错把?

交叉连接是指什么?

AT指令我应该也没错的,比如:
unsigned char AT_cmd[]={"ATrn"};                                                        //握手信号
unsigned char ATE_cmd[]={"ATErn"};                                                  //简化显示
unsigned char CNMI_cmd[]={"AT+CNMI=1,1,2rn"};                    //设置收到短消息提示
unsigned char CMGR_a_cmd[]={"AT+CMGR="};                                        //读取第X条短信,前半部分
unsigned char CMGR_b_cmd[2]={'',''};                                                //第X条短信,中间部分
unsigned char CMGR_c_cmd[]={"rn"};                                                //后半部分
举报

刘丽丽

2019-10-14 15:38:19
2-3这叫交叉,2-2这叫顺接,你的连法没错,注意回车换行符。
举报

潘飘稚

2019-10-14 15:45:47
用串口调试助手的16进制显示模式查看你的命令尾缀是否正确。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分