Мониторинг двух скоростей передачи

Я использую разные коды, которые устанавливают разные значения скорости передачи данных с помощью функции Serial.begin().

У меня есть Uno, использующий Serial.begin(9600), подключенный к модулю ESP8266 ESP-01

SoftwareSerial WiFiBoard(2, 3);
WiFiBoard.begin(115200)

Оба они печатают и читают из Serial, но когда я использую Arduino IDE Serial Monitor, я могу отображать только содержимое 9600... Я где-то пропустил настройку ?

Кроме того, когда я настраиваю оба из них для использования скорости передачи данных 9600, я по-прежнему вижу только информацию Uno

, 👍0

Обсуждение

У вас не может быть двух разных скоростей передачи в одном и том же последовательном соединении. Это нелогично., @Majenko

Насколько я понимаю, при использовании библиотеки «SoftwareSerial» используется новое последовательное соединение., @Alucard

Это совершенно отдельное последовательное соединение. Ничего общего с последовательным монитором., @Majenko

Ой ! Теперь это имеет гораздо больше смысла... Итак, есть ли способ фактически контролировать две платы?, @Alucard

Ваш компьютер видит только то, что Arduino отправляет через «Serial». Если вы хотите, чтобы он увидел что-то откуда-то еще, вам нужно активно читать эти данные из этого «другого места» и отправлять их на свой компьютер через «Serial»., @Majenko

Теперь это имеет большой смысл. Так что я все еще могу выбрать другую скорость передачи данных для WiFiBoard, я все еще могу писать и читать с него, но для того, чтобы отобразить его на последовательном мониторе, мне нужно в основном Serial.print( WiFiBoard.read()) ?, @Alucard

Короче говоря, да. Лучше: пока (WiFiBoard.available()) { Serial.write(WiFiBoard.read()); }, @Majenko

Отлично спасибо!, @Alucard


1 ответ


Лучший ответ:

2

Ваш компьютер не может видеть, что происходит через последовательное соединение WiFiBoard, потому что это соединение не имеет ничего общего с соединением с вашим компьютером.

Если вы хотите, чтобы ваш компьютер видел, что принимается через этот порт, вы должны считать данные с этого порта, а затем отправить их на свой компьютер.

Разница в скорости передачи не имеет (большого) значения (только то, что если один из них отправляет слишком много данных слишком быстро, чтобы другой мог их переслать, вы потеряете часть данных).

Обычно используется что-то вроде:

while (WiFiBoard.available()) {
    Serial.write(WiFiBoard.read());
}

Все, что получено от платы WiFi, будет перенаправлено через последовательный порт на компьютер.

,