Чтение из порта не работает должным образом

dd777mine

✩✩✩✩✩✩✩
8 Апр 2023
1
0
NodeMCU V3

У меня возникают проблемы со чтением данных из последовательного порта при использовании программ, отличных от ArduinoIDE. Я создал цикл, который постоянно отправляет данные с микроконтроллера на порт компьютера.
В ArduinoIDE все работает нормально, но когда я пытаюсь использовать другие программы, такие как Putty, QtSerialMonitor, ProcessingGrapher, SerialPlot, PCScope и другие, я не могу получить данные, хотя соединение с портом установлено. Иногда какие-то данные единоразово появляются, если я быстро переключаюсь между подключением и отключением порта (Проклациваю кнопку подключиться\отключиться). Однако, если я сначала включу монитор порта в ArduinoIDE, а затем выключу его, некоторые программы начнут нормально работать. В частности, QtSerialMonitor работает после включения и выключения монитора порта в ArduinoIDE. Но если я переподключу ESP8266 к компьютеру, мне нужно
снова включить и выключить монитор порта в ArduinoIDE, чтобы QtSerialMonitor мог читать данные.

Я пробовал использовать разные компьютеры, но все аналогично.

Данные видны только в ArduinoIDE. Или, как я упоминал ранее, если после подключения ESP8266 к компьютеру я хоть раз подключался к монитору портов в ArduinoIDE, то некоторые программы (QtSerialMonitor) после этого будут нормально работать. А вот в других программах, например Putty, чтение данных вообще не работает.

Я не пытаюсь одновременно подключиться к порту через другую программу. Я делаю это последовательно.
1. Включаю монитор в ArduinoIDE.
2. Выключаю монитор в ArduinoIDE.
3. Включаю в другой программе.

Если я не выполнил эти действия перед подключением в других программах (QtSerialMonitor), то они не будут отображать никаких данных. Только если я не включу и выключу монитор в ArduinoIDE.
Если после подключения микроконтроллера к компьютеру я еще ни разу не включал монитор порта в ArduinoIDE то в логе подключения (QtSerialMonitor) я вижу картину которую я показал на первом вложении. "Serial port opened. COM7, 9600, Data8, NoParity, OneStop, NoFlowControl, DTR: 1�>>" И больше ничего. В других программах вообще 0 реакции. Только если не проклацивать кнопку как я упоминал раньше.

Я спросил разработчика ProcessingGrapher об этой проблеме, потому что это было первое приложение, которое я попробовал после ArduinoIDE, и оно не работало должным образом. Я предоставил скрины, код и описание проблемы, но похоже проблема не в софте, как я думал, а в моем ESP8266. Пожалуйста, прочитайте это здесь:
Также я писал на другой форум по ардуино, но видимо ответа я там не получу: https://forum.arduino.cc/t/help-reading-from-the-port-is-not-functioning-properly/1112695/7


C++:
long last = 0L;

void setup() {
    Serial.begin(9600);
}

void loop() {
    if (millis() - last >= 200) {
        last = millis();
            Serial.println(analogRead(A0));
    }
}
 

Вложения