ardunio uno和sim900a通信问题
我把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返回、
请问这是怎么回事。。 如果不知道问题出在哪里,在电脑上用串口调试工具看看,发出AT指令时,返回的字符串是什么 sim900a就没有at这条指令,你去网上下一个sim900a的at指令集看看就知道了,比如说AT+CMGR=1这样的才行。 i7456 发表于 2014-10-4 12:47 static/image/common/back.gif
如果不知道问题出在哪里,在电脑上用串口调试工具看看,发出AT指令时,返回的字符串是什么
我用的ardunio ide里面的串口看的,sim900a的串口是直接连到ardunio上的啊,是不是我连线连得不对啊 毛驴 发表于 2014-10-4 15:05 static/image/common/back.gif
sim900a就没有at这条指令,你去网上下一个sim900a的at指令集看看就知道了,比如说AT+CMGR=1这样的才行。
有啊,如果直接把sim900a串口插到电脑上,发送AT就能返回ok,我有个问题,我看ardunio的串口的波特率都是9600的,但是sim900a的串口别的波特率是115200的,换成别的就乱码,所以你觉得会不会是这方面的问题 不是吧,我sim900a用的就是9600,不管多少,设置的波特率和串口监视器上的要一致,另外你试试其他的命令,如果你用的是Uno的话,不能用serial2这种命令。 毛驴 发表于 2014-10-4 20:41 static/image/common/back.gif
不是吧,我sim900a用的就是9600,不管多少,设置的波特率和串口监视器上的要一致,另外你试试其他的命令,如 ...
等下试试9600,如果我只用sim900a的话,用的是sscom的串口工具,等下看下,你用的是uno的板子么 主要用的是mega 2560,Uno也用过 DEMON_BY,问题解决没,SIM900可以更改波特率的,此外SIM900模块和arduino板子需共地连接,TX->RX,RX->TX; 发射AT命令后,最后加段延时,还有就是:comdata += char(Serial.read());这句代码是不是有问题哦,Serial.read()函数返回的本身就是char型的,comdata是string型,这个表达式能否得到你想要的“OK”呢? DEMON_BY 发表于 2014-10-4 20:32 static/image/common/back.gif
有啊,如果直接把sim900a串口插到电脑上,发送AT就能返回ok,我有个问题,我看ardunio的串口的波特率都是 ...
sim900a波特率是可以使用AT命令设置的,还用你用arduino的一个串口跟sim900a通信,还要它在电脑上显示给你看,它不干的,232是点对点通信,不能点对两点通信的,代码也有问题的哦!
页:
[1]