串口发AT指令时,不返回OK,而返回发送的信息

lyee2011 2013-01-23 10:53:37
今天试着用树莓派接一个sim900的扩展板,此扩展板原是用在arduino上的,tx和RPi的rx相连,rx和RPi的tx相连,vcc和gnd也接好。可以正常启动gprs工作。
这个时候,在树莓派的串口里可以看到gprs发过来的启动信息,如果输入AT指令或者其他的命令,则sim900原样返回发送的内容。
很不理解,已经可以收到数据,波特率也设置正确(9600),但就是没法调用AT命令。
我使用的串口工具是pyserial。
发送命令如下:
>>> import serial
>>> ser=serial.Serial("/dev/ttyAMA0",9600)
>>> ser.isOpen()
True
>>> ser.write("AT")
2
>>> print ser.read(ser.inWaiting())
AT
>>> ser.write("abc")
3
>>> print ser.read(ser.inWaiting())
abc
>>>

此sim900的板子,接在arduino上,则一切正常。

希望高手指教。
...全文
2763 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
樱桃lmc 2014-12-15
  • 打赏
  • 举报
回复
我也遇到了,怎么解决的
qq441337607 2013-11-05
  • 打赏
  • 举报
回复 1
我感觉是AT指令后没加\r
wang531882703 2013-09-24
  • 打赏
  • 举报
回复
能具体说一下是怎么解决的吗?我也遇见了这个问题
lyee2011 2013-01-24
  • 打赏
  • 举报
回复
问题基本解决了,是因为我的sim900的扩展板是通过uart做通讯。 uart不是简单的串口通讯,还需要做一下信号上的控制。 使用minicom,可以访问sim900,并做at操作。 现在又有新问题了,minicom有一个独立的界面,我如何能在python一样类似的工具里,做的程序式的控制,而非由用户输入。
本程序参考网上某个例程编写而成,已完成短信功能。GSM模块为wavecom moden。先点击获取SIM卡信息按钮获取短信中心号码,然后输入手机号,短信内容短信。希望对同样初次接触GSM模块的兄弟们有帮助。 以下是本程序开纪录(包括程序都写得比较不规范,请见谅!) 7.14----------------------------------------------- 开始着手GSM模块的学习和编程。弄了一天的间,以为是win7下的超级终端有错误,后来才现是我把波特率弄错了,这个wave moden的默认波特率是115200,而我却设成了一般情况下的9600。这是一个很大的教训,欲速则不达。 7.15----------------------------------------------- 自己用C#编了个简单的GSM与上位机连通判断的模块,目标是从串口“AT”给GSM模块,GSM模块能够返回与超级终端上返回得到的信息一致(即AT\n OK)。不过没有完成预期的目标,查阅了一些资料现有可能出现的错误是的AT指令编码没编好。 7.16----------------------------------------------- 实现了GSM模块与上位机的连通。比如,从C#界面“AT”,能够从串口读取到GSM模块返回的“AT\n OK信息,其他AT指令亦能实现。 现了一个小BUG,如果GSM模块上电后即在VS2008上调试,则程序能够顺利运行;但如果上电后在超级终端调试过后,再在VS2008上调试,则不能从C#的小程序上获取GSM模块返回信息。 实现了GSM模块短信的功能。可以中文\英文短信。在此过程中出现了一个低级失误,没把生成的短信中心号码“+8613000……”前的“+”去掉,导致生成的PDU编码有误,失败。

790

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 其他移动相关
社区管理员
  • 移动开发其他问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧