Arduino + GSM SIM900 возвращает ÿ char

Итак, когда я отправляю, например, «AT» через Serial, 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());
}

Взаимодействие:

Интерфейс


person MR.    schedule 18.10.2013    source источник
comment
Правильно ли горят светодиодные индикаторы GSM? Вы пробовали другие AT-команды, такие как: ATI? Случайный поиск в Google привел меня к следующему: code.google.com/p/ gsm-shield-arduino/downloads/list, который может быть полезен, когда вы установите связь с работающим модулем.   -  person George Mitchell    schedule 18.10.2013
comment
Мне нужно убедиться, что я правильно подключил контакты.   -  person MR.    schedule 18.10.2013
comment
У вас есть даташит? Я не могу найти его для этой конкретной платы. Я полагаю, что ATMega328/168 имеют внутренние подтягивающие резисторы и подтягивающие резисторы в зависимости от того, какой порт вы используете ... но вы общаетесь с модулем GSM через UART, поэтому я сомневаюсь, что они вам понадобятся.   -  person George Mitchell    schedule 19.10.2013
comment
Даташит найти невозможно. Во всяком случае, эта плата имеет низковольтный TTL - 3,3 В. Может здесь проблема?   -  person MR.    schedule 19.10.2013
comment
Этот символ ÿ равен 0xFF в шестнадцатеричном формате.   -  person Smax Smaxović    schedule 19.10.2013
comment
Это может быть эффект жареной платы gsm?   -  person MR.    schedule 19.10.2013
comment
Относительно GSM отвечает только на CR и NL с выдачей каждого. Любые идеи? Это по спецификации и правильно. Командные строки AT всегда должны заканчиваться ‹CR› (только) и ничем другим. См. V.250 (itu.int/rec/T -REC-V.250-200307-I/en) для более подробной информации.   -  person hlovdal    schedule 22.12.2013


Ответы (2)


Проблема была в блоке питания. Должно быть не менее 2 ампер.

person MR.    schedule 23.12.2013
comment
У меня была почти такая же проблема. В своем подходе я использовал блок питания мобильного телефона (5,14 В / 2 А), и он не подключался. Затем я использовал лабораторный блок питания, установил то же значение и ограничил ток до 2А, и все заработало. На осциллографе увидел небольшие всплески (50Гц). Подключенный конденсатор (~ 470 мкА) должен решить эту проблему. - person Jan; 10.08.2018

Похоже, у вас неправильная скорость передачи данных. Вы пробовали 19200? В документации по другим платам на базе SIM900 указано значение по умолчанию 19200.

person TravisHendrickson    schedule 18.10.2013