【问题标题】:Arduino + GSM SIM900 returns ÿ charArduino + GSM SIM900 返回ÿ char
【发布时间】:2013-10-18 17:50:51
【问题描述】:

因此,当我通过串行发送示例“AT”时,GSM 总是返回给我ÿ char。 "AT" 返回 ÿÿ - 任何一个字符都返回一个 ÿ。问题出在哪里?也许连接是错误的?我应该使用任何电阻并将 GSM TX 也连接到 GND 吗?

更新:GSM 仅对 CR 和 NL 做出响应,并给出 ÿ。有什么想法吗?

代码:

#include <SoftwareSerial.h>

#define rx 10
#define tx 11
SoftwareSerial gsm(rx, tx);

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

void loop()
{ 
    if(gsm.available())
       Serial.write(gsm.read());

    if(Serial.available())
       gsm.write(Serial.read());
}

接口:

【问题讨论】:

  • GSM 指示灯 LED 是否正常亮起?您是否尝试过其他 AT 命令,例如:ATI?一些随机的谷歌搜索让我想到了这个:code.google.com/p/gsm-shield-arduino/downloads/list,一旦你与模块工作沟通,这可能会有所帮助。
  • 我需要确保已正确连接引脚。
  • 您有数据表吗?我似乎无法为该特定板找到一个。我相信 ATMega328/168 有内部上拉电阻和下拉电阻,具体取决于您使用的端口……但是您通过 UART 与 GSM 模块通信,所以我怀疑您是否需要它们。
  • 无法找到数据表。无论如何,该板具有低电压 TTL - 3.3V。也许这里有问题?
  • ÿ 字符是十六进制的 0xFF。

标签: c arduino serial-port gsm


【解决方案1】:

电源有问题。必须至少有 2 安培。

【讨论】:

  • 我遇到了几乎同样的问题。在我的方法中,我使用了手机电源(5.14V / 2A),但它没有连接。然后我使用了实验室电源,调整了相同的值,将电流限制在 2A,它就可以工作了。在示波器上,我看到了小尖峰(50Hz)。一个附加的电容器 (~470µA) 应该可以解决这个问题。
【解决方案2】:

听起来你的波特率不正确。你试过19200吗?其他基于 SIM900 的板的文档显示默认值为 19200。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-17
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多