Проблема приема по UART

jenya7

Member
Я вижу все исходящие сообщения из ESP8266, например
Код:
Serial.println("UDP OK");
Теперь я хочу послать сообщение в ESP8266
Код:
void UART_Get()
{
     char chr;
    if (Serial.available() > 0)
    {
        chr = Serial.read();

        //for debug
        Serial.print(chr);
    }
} 

void loop()
{
     UART_Get();
}
Но я не получаю ответ
Код:
//for debug
Serial.print(chr);
Я ставлю скоп на ножку RX и вижу входящие сигналы.
В чём может быть проблема?
 

Atom

Member
Проверьте, не переназначаете ли бы гдето пин rx для своих нужд. И попробуйте пример на чистом скетче, определеть программный это баг или аппаратный
 

nikolz

Well-known member
Я вижу все исходящие сообщения из ESP8266, например
Код:
Serial.println("UDP OK");
Теперь я хочу послать сообщение в ESP8266
Код:
void UART_Get()
{
     char chr;
    if (Serial.available() > 0)
    {
        chr = Serial.read();

        //for debug
        Serial.print(chr);
    }
}

void loop()
{
     UART_Get();
}
Но я не получаю ответ
Код:
//for debug
Serial.print(chr);
Я ставлю скоп на ножку RX и вижу входящие сигналы.
В чём может быть проблема?
предположу, что в драйвере UART ввод данных не реализован,так как им мало кто пользуется.
Посмотрите либо исходники драйвера, либо документацию на эту библиотеку.
 

jenya7

Member
предположу, что в драйвере UART ввод данных не реализован,так как им мало кто пользуется.
Посмотрите либо исходники драйвера, либо документацию на эту библиотеку.
функции Serial.available() и Serial.read(); не реализованны? ну это очень смелое предположение. и где посмотреть их исходники? это не open source, эти функции зашиты в библиотеке.
 

CodeNameHawk

Moderator
Команда форума
при неверной скорости, разрядности и.т.д я бы не получал сообщения на терминал. или получал бы мусор.
Может не совпадать скорость, с которой подаются данные на есп, вывод с есп будет работать корректно.
Покажи те полный скетч минимальной длины, где не работает ваша функция.
 
Сверху Снизу