Проблема с Serial port

Illya77
Offline
Зарегистрирован: 21.02.2017

Добрый вечер.Сталкнулся с такой проблемой.Пример кода:

char a ; 
void setup(){
    Serial.begin(9600);
    Serial1.begin(9600);
}
 
void loop()
{
    while(Serial1.available()>0)
    {
        a = Serial1.read();
        Serial.print(a);
    }
}
При посылке на Serial1 значения 1 в Serial выводится gv, при посылке 123-gіV
В чём может быть проблема?
Illya77
Offline
Зарегистрирован: 21.02.2017

Столкнулся*

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

а скорость порта точно выставили?

Illya77
Offline
Зарегистрирован: 21.02.2017

да,9600 бот как на отправку,так и на приём

Illya77
Offline
Зарегистрирован: 21.02.2017

Если использовать фукцию readString и послать на Serial1 hello,то в Serial получаем ©::

*
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

У Вас случайно не та мега, у каоторой на первом порте выводы наоборот распаяны?

Illya77
Offline
Зарегистрирован: 21.02.2017

Она самая

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Т.е. Вы в курсе и соединили всё правильно? ну, тогда, сорри, не знаю, что подсказать.

Illya77
Offline
Зарегистрирован: 21.02.2017

Если бы я не правильно подключил,я бы вообще не каких данных не получил

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Тоже верно.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

А посмотреть логическим анализатором, что реально приходит на один порт и отсылается другим?

Еще можно подключить дисплей и выводить информацию на него.

Illya77
Offline
Зарегистрирован: 21.02.2017

Отсылается точно правильно,поскольку при замыкании rx,tx приходят теже данные,которые отсылал.
Дисплей выводит такой же бред

Illya77
Offline
Зарегистрирован: 21.02.2017

Логического анализатора нету

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Тяжело отлаживать программы вслепую. (

А как насчет дисплея?

Или записать в EEPROM?

А выводить не в виде символа, а в HEX виде?

 

PS. Кстати, Вы очень невразумительно написали, что передаете и что принимаете.

Судя по скетчу, количество принятых и переданных байтов должно совпадать, а как на самом деле? gv - это что? Строка? И 123 - это один символ или три?

Illya77
Offline
Зарегистрирован: 21.02.2017

123-это пример сообщения,которое я передаю через com.gv-то что я получаю,вместо 123

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Напишите четко, что именно Вы передаете и что получаете.

Продублируйте вывод в HEX.