首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无串行通信的SIM800C

无串行通信的SIM800C
EN

Stack Overflow用户
提问于 2019-07-13 13:49:02
回答 3查看 2.1K关注 0票数 2

我正试着让我的SIM800C和我的阿迪诺谈谈。不过,没有任何交流发生。

代码语言:javascript
复制
#include <SoftwareSerial.h>

SoftwareSerial at(2, 3);

void setup() {
  Serial.begin(9600);
  at.begin(9600);
}

void loop() {
  // try every 2 seconds
  delay(2000);

  Serial.println("sending AT ... ");
  at.println("AT");

  while (at.available() > 0) {
    Serial.write(at.read());
  }
}

我无法拿回一个OK。SIM800C是用来自动检测波特率的。

我相信一定有一个简单的愚蠢的错误。我只是不知道现在该怎么办。显然我已经检查过电缆中断了。出于绝望,我已经试图改变RXTX。我还尝试了不同的波特率(在SoftwareSerial通常的限制范围内),但是一旦有几个AT命令进入,它就会自动检测它。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-07-14 10:48:08

奇怪的是,SIM800C上的引脚SIM800C需要连接到GND才能工作。它现在开始每秒钟闪烁一次,并响应AT命令。

而且,正如SIM800C文档所述,这个特定模块没有启用自动生成。正确的波特率是115200。

票数 3
EN

Stack Overflow用户

发布于 2019-07-13 15:10:56

有一些问题您需要考虑:

  1. 使用下面的示例代码在PC和SIM之间传输数据。有时,SIM模块会进入断电状态,不会响应任何AT命令,但会在串行监视器中打印一些结果。
  2. 如前所述,您的布线似乎是错误的,正如您声明的软件系列为SoftwareSerial at(2, 3);一样,这意味着pin 2是Arduino上的Rx,并且应该连接到SIM的Tx引脚和Arduino上的Tx,并且应该连接到SIM的Rx引脚。请不要把引脚弄乱,并按下面的方式正确连接。

Arduino SIM Rx 2

  1. 我不确定您是否可以在SIM800上使用500 of的USB连接器,确保使用外部的1/2A电源用于SIM模块的VCC。
  2. 看看SIM模块的眨眼速度,如果它连接并启动,将在3秒的延迟时间内闪烁,如果它闪烁得很快,就意味着它正在重新启动。此外,如果SIM正确启动,它将打印一些信息,如SIM READYCALL READY等。
  3. 试试其他波特率,如115200,看看你是否有任何权力。

我放了一些宏定义,以使引脚映射更加清晰。

代码语言:javascript
复制
#include <SoftwareSerial.h>

//SIM800 TX is connected to Arduino D2
#define SIM800_TX_PIN 2

//SIM800 RX is connected to Arduino D3
#define SIM800_RX_PIN 3



//Create software serial object to communicate with SIM800
SoftwareSerial serialSIM800(SIM800_TX_PIN,SIM800_RX_PIN);

void setup() {
  //Begin serial comunication with Arduino and Arduino IDE (Serial Monitor)
  Serial.begin(9600);
  while(!Serial);

  //Being serial communication witj Arduino and SIM800
  serialSIM800.begin(9600);
  delay(1000);

  Serial.println("Setup Complete!");
}

void loop() {
  //Read SIM800 output (if available) and print it in Arduino IDE Serial Monitor
  if(serialSIM800.available()){
    Serial.write(serialSIM800.read());
  }
  //Read Arduino IDE Serial Monitor inputs (if available) and send them to SIM800
  if(Serial.available()){    
    serialSIM800.write(Serial.read());
  }
}
票数 1
EN

Stack Overflow用户

发布于 2019-12-15 19:36:35

是的,此模块将无法在此配置中工作。有一个5V引脚的V_TTL引脚。此引脚启用您的GSM的TTL逻辑转换器。在arduino的情况下,您必须将这个引脚连接到5V,如果是ESP8266.参见这里的引脚配置,则连接到3V。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57019758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档