Мусор в мониторе порта.

Zhigalo_Alexey
Offline
Зарегистрирован: 11.07.2015

Имеется китайская Arduino nano.

Так же имеется Siemens C62.

Подключил данный телефон к Arduino, вот таким образом.

КОД

#include <SoftwareSerial.h>
#define rxPin 2
#define txPin 3 

SoftwareSerial phone(rxPin, txPin);

void setup() 
{
   Serial.begin(115200);
   while (!Serial) 
   {
    ; // wait for serial port toconnect.Needed for Leonardo only
   }
   pinMode(rxPin, INPUT);
   pinMode(txPin, OUTPUT);
   phone.begin(115200);
}

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

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

Открываю монитор порта и отправляю команды, "ATD + 111" и т.д

Телефон принимает все команды верно.

Но, проблема в том что когда телефон отправляет команды обратно, иногда, вместо нужных выводиться мусор.

Как с этим бороться и с чем это связано ? 

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

В мониторе выставьте правильную скорость.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

Soft serial, по моему не работает на 115200.

18  phone.begin(115200); 

http://arduino.ru/forum/programmirovanie/softwareserial-ne-rabotaet-na-115200

 

Zhigalo_Alexey
Offline
Зарегистрирован: 11.07.2015

Gippopotam пишет:

В мониторе выставьте правильную скорость.

В мониторе выставлена правильная скорость 115200 бод.

И иногда выводиться правильные обратные данные. 

 

Zhigalo_Alexey
Offline
Зарегистрирован: 11.07.2015

xDriver пишет:

Soft serial, по моему не работает на 115200.

18  phone.begin(115200); 

http://arduino.ru/forum/programmirovanie/softwareserial-ne-rabotaet-na-115200

 

Телефон работает только с этой соростью... 
 
Если бы всегда бы выводится  мусор, то тогда да, но иногда же и выводится и нужное.

 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Занчит иногда всё работает, можно не париться

Zhigalo_Alexey
Offline
Зарегистрирован: 11.07.2015

kisoft пишет:

Занчит иногда всё работает, можно не париться

Ну меня это не устраивает.

 

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

может по питаниею вопрос.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

да блин, загуглите вы и прочтете, что софтовая библиотека не коректно работает на 115200

максимальная скорость на которой он стабильно работает - 38400.

 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Zhigalo_Alexey пишет:

kisoft пишет:

Занчит иногда всё работает, можно не париться

Ну меня это не устраивает.

 


В таком случае логично прислушаться к советам, прогуглить вопрос и пробовать его решить.
Ваш КЭП

Araris
Offline
Зарегистрирован: 09.11.2012

xDriver пишет:

максимальная скорость на которой он стабильно работает - 38400.

Именно так.

Zhigalo_Alexey
Offline
Зарегистрирован: 11.07.2015

Araris пишет:

xDriver пишет:

максимальная скорость на которой он стабильно работает - 38400.

Именно так.

Да, спасибо, было сказано что SoftwareSerial не работает на скорости 115200. Но оно как бы работает, но не так как хотелось бы..
 
Решил проблему так, переключил выводы с 2 и 3 пинов на tx rx.
 
Правда перепрошивать теперь не удобно, но это не беда.
 
Проблема тепер в том, как принимать сообщения с телефона и выводить в монитор порта и сравнивать команды... 
 
в ответ должно прийти что то вроде этого:
 
+CLIP: "+380501111111",145
 
Если в serial пришло, то как обрабатывать дальнейшие события ?