搜索
bottom↓
回复: 16

有谁知道怎么把gprs模块里面的数据通过串口传送回给单片机呢,大家帮我想想把,急死了,

[复制链接]

出0入0汤圆

发表于 2008-8-21 22:39:24 | 显示全部楼层 |阅读模式
如何通过模块把数据传回给单片机呢?

比如我现在用手机发送Z到gprs模块,想让与模块连接的单片机收到这个Z,不知道怎么让单片机读出来!我的目的是想让SIMl00接收短信作为控制数据,通过串口传送给单片机,单片机分析数据,如果满足条件,则执行来控制
现在就是无法让短信的内容到达单片机!

如果用模块建立tcp/ip连接,通过网络调试助手这个软件,里面有个手动发送的选项,填入发送的内容,可以到达单片机,但是现在我是短信连接,短信发送给sim100,无法传到单片机
即使我用了读取短信的at指令,还是没效果,不知道什么原因,麻烦大家了

阿莫论坛20周年了!感谢大家的支持与爱护!!

如果天空是黑暗的,那就摸黑生存;
如果发出声音是危险的,那就保持沉默;
如果自觉无力发光,那就蜷伏于牆角。
但是,不要习惯了黑暗就为黑暗辩护;
也不要为自己的苟且而得意;
不要嘲讽那些比自己更勇敢的人。
我们可以卑微如尘土,但不可扭曲如蛆虫。

出0入0汤圆

 楼主| 发表于 2008-8-21 23:14:06 | 显示全部楼层
我的目的是想让SIMl00接收短信作为控制数据,通过串口传送给单片机,单片机分析数据,如果满足条件,则执行来控制
现在就是无法让短信的内容到达单片机!

出0入0汤圆

发表于 2008-8-22 10:51:43 | 显示全部楼层
首先确定单片机与GSM模块之间的通信是否正常,其次确定短信是否成功发送到GSM模块,如果上述条件满足,GSM模块收到短信后会通过串口发送提示消息

出0入0汤圆

 楼主| 发表于 2008-8-22 12:57:34 | 显示全部楼层
短信已经在sim卡里了,用超级终端查过!
请问你说的是指模块收到短信通过串口发送给单片机的意思么?
感觉在超级终端里面,只要我发送短信给模块就会自动显示了(我已通过at指令设定为接收短信自动显示出来)
不知道在超级终端变成了串口,可否实现同样的

出0入0汤圆

发表于 2008-8-22 20:22:37 | 显示全部楼层
如果你设置成功了的话,接收到新短信的时候会有信息输出的

出1070入962汤圆

发表于 2008-8-22 20:30:07 | 显示全部楼层
SIM100模块我没有用过,但是我想GSM模块的工作流程都是大同小异的。
大概的流程是:

发信息给模块->模块收到信息->模块通过某种方式通知单片机有新短信->单片机取出短信->根据内容决定做什么

所以,最重要的是单片机程序要能感知模块给出的新短信信号,然后自己从模块取出短信,感觉楼主总是在模块是否
自动送短信给单片机这里卡住了,事实上应该是,模块才不会自动把短信送到单片机上的,单片机上的程序要自己写的!

出0入0汤圆

 楼主| 发表于 2008-8-22 20:56:21 | 显示全部楼层
谢谢楼上,我急死了
你所说的单片机感知到模块有短信,其实我觉得是一旦模块收到短信,就会给出一组提示  比如我们收到这样的信息:“+CMTI: "SM",3”,知道来了新信息

但是我用的是 AT+CNMI=2,2,,1
这组参数的功能是    只要来了新信息直接显示到串口,不作存储 ,这样的话就是用具体的短信内容直接代替提示:“+CMTI: "SM",3   ,这样就会保证收sim卡始终为空的,也不用人工读取短信了,但是不知道为何,我的单片机没反应!我用超级终端做过测试,只要给模块发短信就能够自动显示收到的短信,但是不会保存到sim卡。这里的问题是,超级终端是不是可以相当于串口理解,我用超级终端打发送短信的at指令,就可以向手机号发送短信,同样通过单片机向串口发送at指令也可以让模块发送短信!那么就是说既然超级终端能收到我用手机往模块发送的信息,那么串口是不是同样也能自动收到呢?

请大家再帮我想想,我急死了!

出1070入962汤圆

发表于 2008-8-23 09:41:08 | 显示全部楼层
楼主还是给出详细的设备清单,连接方式,有图最好。否则根本说不清楚。
楼主说用超级终端连接,不知道连接的是什么接口?
又说用单片机连接串口,这个串口是否和上述相同?
单片机是什么?
单片机的程序是谁写的?你如何确认它能正常工作?
楼主对超级终端和串口的概念是怎么理解的?

如果从楼主字面上来看,超级终端能收到短信,那么串口(GSM模块的)一定能向单片机输出同样的东西,至于为什么
单片机没有反应,那你查单片机的问题,而不用再纠缠在超级终端和串口上了。

出0入0汤圆

发表于 2008-8-23 11:06:27 | 显示全部楼层
楼上正解  串口通信

出0入0汤圆

 楼主| 发表于 2008-8-23 12:00:54 | 显示全部楼层
谢谢2位,超级终端能收到短信,那么串口(GSM模块的)一定能向单片机输出同样的东西,我也认为是这样的
但是不知道是不是单片机的响应延迟问题
似乎如果用的是 AT+CNMI=2,2,,1  
(这组参数的功能是    只要来了新信息直接显示到串口,不作存储),即使我用手机发了信息,单片机似乎来不及反应还是怎么回事,所以无法产生中断

单片机串口连接gprs模块(sim100)串口,
我的本意是 手机向模块发送一个Z,一旦模块收到传输到串口,单片机收到产生接收中断,执行我想要的中断处理程序

现在我把语句换成了手动读取,而不是自动传输到串口
while(1)
{send1();}
这里send1()就是读取短信的意思
这样的话单片机的确有响应了,顺利产生中断,然后执行我想要的中断处理函数
可是这样写得话,单片机就要不停的发送读取指令,感觉实在是不行
不知道有没有办法让短信来了,单片机自动读取呢
另外有没有办法让其自动删清空呢,因为移动常发垃圾短信过来,我必须保证每次读取的都是我发送的短信Z

出1070入962汤圆

发表于 2008-8-23 14:18:14 | 显示全部楼层
连你自己都承认是单片机程序的问题了,那就好好调试单片机程序吧。单片机中断是怎么设计的,是使用的外部中断还是仅仅是串口
中断,都不一样的情况。你原来的设计为什么没有产生中断,这些都是你要去考虑的,只有这个问题解决了,你的功能才能正常,

出0入0汤圆

 楼主| 发表于 2008-8-23 15:20:29 | 显示全部楼层
就是usart接收中断
似乎中断不是很灵敏,非常我不停的发送读取指令,读到z才能产生中断
如果选用短信发送到模块直接传输到串口的模式,同样的短信,无法产生接收中断

出0入0汤圆

发表于 2008-8-23 15:39:57 | 显示全部楼层
楼主,当串口收不到信息的时候,应该怎样着手分析?应该有个思路不是:

已知:单片机可发送,模块能响应,则:

1、使用串口自发自收,确保单片机串口功能完整
2、确保单片机的串口和模块BPS保持一致
3、确保串口中断能够正确响应

至于具体怎么做,那就要看你具体的一些情况而定了,不过大致思路不变

出0入0汤圆

 楼主| 发表于 2008-8-23 16:17:58 | 显示全部楼层
恩,谢谢楼上的思路,受益匪浅,我再去研究一下
第一次接触实际的东西,感觉还是没经验,调试真的很考验人的耐心!

出0入0汤圆

发表于 2008-8-28 17:15:15 | 显示全部楼层
关键要思路对头,这也是真正考验人的地方。。+U,给自己的

出0入0汤圆

发表于 2009-3-16 13:48:31 | 显示全部楼层
学习了,就是还不理解 thomasdu 说的,当串口收不到信息的时候,自发自收是什么意思?

出0入0汤圆

发表于 2010-6-2 19:48:08 | 显示全部楼层
标记回复【楼主位】lwking412  
-----------------------------------------------------------------------
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-9-27 07:40

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表