打印

单片机控制GSM的问题

[复制链接]
9294|33
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
墨羽谨年|  楼主 | 2012-3-27 23:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我最近在赶进度完成一个比赛的作品,其中一个部分是用单片机(89c54)控制GSM模块(tc35)收发短信,并识别短信的内容。现在出了这么一个问题,我想了两天了也没想明白,求各位给些意见。

问题:我可以通过电脑用串口控制GSM模块工作,GSM也会通过串口返回每个指令相应的信息;也可以通过单片机的串口控制GSM模块工作;但是在用单片机控制GSM模块的时候,GSM模块不会通过串口返回每个指令相应的信息给单片机(单片机的串口可以接收到信息的,比如说我用电脑的串口对其进行了测试,也让单片机自己串口发串口收测试过,可是就是接收不到GSM模块的返回信息)。真心不知道是什么原因,如果解决不了的话,就无法读取短信。再次感谢各位大神给些意见,谢谢了

相关帖子

沙发
墨羽谨年|  楼主 | 2012-3-27 23:18 | 只看该作者
如果可以的话,可以加我的QQ详细说,我怕我的问题描述的不够详细。(qq:331721333)

使用特权

评论回复
板凳
dqyubsh| | 2012-3-28 00:12 | 只看该作者
可能是程序结构的问题,输入输出之间没有分清数据帧。这些问题很琐碎,一般教科书的例程对于可靠的通讯来说还是太简单了,工程上慎用。

对于这种有发送有接收的通讯来说,MODBUS协议是个不错的选择。强烈建议参看一下freemodbus代码,一定会受益匪浅。

使用特权

评论回复
地板
ejack| | 2012-3-28 07:50 | 只看该作者
提问之前,先用示波器量过接收脚的波形没有?

使用特权

评论回复
5
ningling_21| | 2012-3-28 10:05 | 只看该作者
单片机串口设置是否一致?,波特率,校验位,等等

使用特权

评论回复
6
jiang390625| | 2012-3-28 10:40 | 只看该作者
进来看看。呵呵

使用特权

评论回复
7
墨羽谨年|  楼主 | 2012-3-28 10:52 | 只看该作者
3# dqyubsh
呵呵,大哥你说的知识对于我来说貌似有点深啊,我会去看的,不过我现在只需要简单的接受发送几个字符就可以了。

使用特权

评论回复
8
墨羽谨年|  楼主 | 2012-3-28 10:54 | 只看该作者
4# ejack
没有诶,吃完中饭我过去拿示波器测下,这个有需要吗?我的单片机和GSM模块在和电脑进行通信的时候都可以正常的收发,就是单片机控制GSM的时候,能发不能收

使用特权

评论回复
9
墨羽谨年|  楼主 | 2012-3-28 10:55 | 只看该作者
5# ningling_21
串口的设置是一样的,这个我有检查了的。请问还会有别的可能吗?

使用特权

评论回复
10
ygzjyh| | 2012-3-28 12:10 | 只看该作者
一般是你的程序有问题,你的单片机接收程序有问题,无法接收GSM的返回信息,或者两者的通信格式你定义不对,GSM应该会返回信息给你,你可以通过串口调试助手看看返回信息是什么,然后再根据他的返回信息编写单片机的接收程序。

使用特权

评论回复
11
墨羽谨年|  楼主 | 2012-3-28 15:00 | 只看该作者
11# ygzjyh
请问 单片机接收 电脑通过串口发来的信息 和 GSM通过串口发来的信息 的方式是一样的吗?因为我的单片机可以接收电脑通过串口发来的信息,但是收不到GSM串口发来的信息,波特率什么的我都是设置好的,没有问题。

使用特权

评论回复
12
cool_coder| | 2012-3-28 15:03 | 只看该作者
确定你的单片机发送的数据没有错误?用示波器或串口助手之类的工具确认一下是很有必要的。

使用特权

评论回复
13
墨羽谨年|  楼主 | 2012-3-28 15:19 | 只看该作者
13# cool_coder
我确定我发的数据没错的,因为我用单片机可以发送 打电话或者发短信的指令给GSM模块,GSM模块也能执行单片机发来的指令。

使用特权

评论回复
14
litouzui| | 2012-3-28 17:42 | 只看该作者
很简单,mcu的串口中断没有打开。

使用特权

评论回复
15
墨羽谨年|  楼主 | 2012-3-28 19:01 | 只看该作者
15# litouzui
那为什么单片机可以收到由电脑经过串口发给它的信息?

使用特权

评论回复
16
huanben| | 2012-3-28 19:30 | 只看该作者
先不接GSM模块 测试下单片机的串口接受发送数据是否正确。

MC35I我以前也用过 很不好用,有时候即使使用电脑串口软件来控制它发送短信也会出问题,比如:发送短信的时候只返回OK,不返回发送成功信息,同时短信也没发送成功;而有时候都是相同的操作却能发送短信。奇了怪了。

还有就是,单片机控制模块能发送短信吗?

使用特权

评论回复
17
墨羽谨年|  楼主 | 2012-3-28 19:37 | 只看该作者
17# huanben
你可能有点误会,我用的是TC35模块(很抱歉我在开始没有说)。单片机的串口是能正常工作的,我已经用两片单片机间串口通信以及电脑和单片机间串口通信测试过了。单片机是能控制模块发短信的。

使用特权

评论回复
18
墨羽谨年|  楼主 | 2012-3-28 19:50 | 只看该作者
路过的各位大神真心求指教,刚刚我又测试了下,我让单片机A的TXD接TC35的RXD(用来发送指令给TC35),然后用另单片机B的RXD接TC35的TXD(用来接收TC35接收指令之后的返回信息,比如说TC35收到指令“at\r”之后就会返回“at换行ok”),发现单片机A发送成功,GSM也执行了指令,并且单片机B也接收到了TC35的返回信息。为什么我只用一块单片机与TC35通信的时候就做不到呢?我感觉是不是51单片机的串口不能发送完数据之后就马上接收数据呢?是不是需要一个延时呢?还是因为别的什么原因呢?求指教。感激感激。

使用特权

评论回复
19
小狼小子| | 2012-3-28 19:57 | 只看该作者
可能是没有回车之类的吧,

使用特权

评论回复
20
小狼小子| | 2012-3-28 20:01 | 只看该作者
回车好像是0x1a

使用特权

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

本版积分规则

12

主题

110

帖子

2

粉丝