完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我用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个回答
|
|
首先注意连接方式,GSM模块的串口与主控设备的串口是一顺连接的,不能交叉连接,其次,AT指令要以“回车”和“换行”符作为结束。
|
|
|
|
串口的输入输出没有问题的,~ 比如我是单片机的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]={' |