极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4818|回复: 10

ardunio uno和sim900a通信问题

[复制链接]
发表于 2014-10-4 10:47:58 | 显示全部楼层 |阅读模式
我把ardunio的rx和sim900a的tx接,tx和rx接,然后ardunio写入如下代码
String comdata = "";
void setup(){
  Serial.begin(115200);
}
void loop(){
Serial.println("AT");
  while (Serial.available() > 0)  
    {
        comdata += char(Serial.read());
        delay(2);
    }
    if (comdata.length() > 0)
    {
        Serial.println(comdata);
        comdata = "";
    }
}
然后串口就是只有-1返回、
请问这是怎么回事。。
回复

使用道具 举报

发表于 2014-10-4 12:47:42 | 显示全部楼层
如果不知道问题出在哪里,在电脑上用串口调试工具看看,发出AT指令时,返回的字符串是什么
回复 支持 反对

使用道具 举报

发表于 2014-10-4 15:05:57 | 显示全部楼层
sim900a就没有at这条指令,你去网上下一个sim900a的at指令集看看就知道了,比如说AT+CMGR=1这样的才行。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-4 20:30:22 | 显示全部楼层
i7456 发表于 2014-10-4 12:47
如果不知道问题出在哪里,在电脑上用串口调试工具看看,发出AT指令时,返回的字符串是什么

我用的ardunio ide里面的串口看的,sim900a的串口是直接连到ardunio上的啊,是不是我连线连得不对啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-4 20:32:08 | 显示全部楼层
毛驴 发表于 2014-10-4 15:05
sim900a就没有at这条指令,你去网上下一个sim900a的at指令集看看就知道了,比如说AT+CMGR=1这样的才行。

有啊,如果直接把sim900a串口插到电脑上,发送AT就能返回ok,我有个问题,我看ardunio的串口的波特率都是9600的,但是sim900a的串口别的波特率是115200的,换成别的就乱码,所以你觉得会不会是这方面的问题
回复 支持 反对

使用道具 举报

发表于 2014-10-4 20:41:29 | 显示全部楼层
不是吧,我sim900a用的就是9600,不管多少,设置的波特率和串口监视器上的要一致,另外你试试其他的命令,如果你用的是Uno的话,不能用serial2这种命令。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-4 21:04:42 | 显示全部楼层
毛驴 发表于 2014-10-4 20:41
不是吧,我sim900a用的就是9600,不管多少,设置的波特率和串口监视器上的要一致,另外你试试其他的命令,如 ...

等下试试9600,如果我只用sim900a的话,用的是sscom的串口工具,等下看下,你用的是uno的板子么
回复 支持 反对

使用道具 举报

发表于 2014-10-4 21:27:53 | 显示全部楼层
主要用的是mega 2560,Uno也用过
回复 支持 反对

使用道具 举报

发表于 2014-11-5 11:00:13 | 显示全部楼层
DEMON_BY,问题解决没,SIM900可以更改波特率的,此外SIM900模块和arduino板子需共地连接,TX->RX,RX->TX;
回复 支持 反对

使用道具 举报

发表于 2014-11-5 11:04:28 | 显示全部楼层
发射AT命令后,最后加段延时,还有就是:comdata += char(Serial.read());这句代码是不是有问题哦,Serial.read()函数返回的本身就是char型的,comdata是string型,这个表达式能否得到你想要的“OK”呢?
回复 支持 反对

使用道具 举报

发表于 2015-2-10 14:58:08 | 显示全部楼层
DEMON_BY 发表于 2014-10-4 20:32
有啊,如果直接把sim900a串口插到电脑上,发送AT就能返回ok,我有个问题,我看ardunio的串口的波特率都是 ...

sim900a波特率是可以使用AT命令设置的,还用你用arduino的一个串口跟sim900a通信,还要它在电脑上显示给你看,它不干的,232是点对点通信,不能点对两点通信的,代码也有问题的哦!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊 ( 浙ICP备09023225号 )

GMT+8, 2020-7-10 11:32 , Processed in 0.050084 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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