Serial.println печатает сразу после предыдущей строки в той же строке

Я написал serial.println в своем коде, но строка была напечатана в той же строке на последовательном мониторе.

#include <WiFi.h>//для подключения esp32 к Wi-Fi

#include <TinyGPS++.h>//для получения данных GPS с GPS-модуля neo-6m

#define WIFI_SSID "Airtel_pawa_4182"//название Wi-Fi простыми словами
#define WIFI_PWD "Ahuja6230"//пароль Wi-Fi

TinyGPSPlus GPS;//создание объекта GPS из библиотеки tinygps++

void setup() {
 Serial.begin(9600);
  //настройка Wi-Fi{
  WiFi.begin(WIFI_SSID, WIFI_PWD);
  Serial.println("connecting to wifi");
  while(WiFi.status() != WL_CONNECTED){
   Serial.println(".");
   delay(1000);    
  }
  Serial.println("Successfully connected to ");
  Serial.print(WIFI_SSID);
  //}

  //настройка GPS{
  Serial2.begin(9600);
  delay(1000);
  Serial.println("ESP32-GPS Tracker");
  Serial.println("Initializing...");
  //}
}

void loop() {
}

В этом коде строка «esp32-gps tracker» выводится сразу после предыдущей строки в той же строке на последовательном мониторе.

Я пробовал запустить код снова и снова, но это не сработало...

Я использую плату esp32 (просто деталь)

Что мне делать?

, 👍1


3 ответа


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

2

Предыдущие операторы печати следующие:

  Serial.println("Successfully connected to ");
  Serial.print(WIFI_SSID);

SSID не будет завершен новой строкой. Возможно, вы имели в виду:

  Serial.print("Successfully connected to ");
  Serial.println(WIFI_SSID);

?

,

0

При отправке текста по последовательной линии принято завершайте каждую строку каким-либо маркером конца строки: вы печатаете какой-то текст, и сразу после него EOL, чтобы обозначить, что «это теперь полная строка». Соответственно, метод Serial.println() печатает запрошенный текст, сразу за которым следует маркер EOL (в данном случае случай, CR+LF).

Из вашего вопроса следует, что вы, похоже, думаете, что EOL немедленно предшествует тексту. Это не так.

См. ответ JRobert, чтобы узнать правильный способ построения линии из нескольких операторы печати: println() следует использовать для последней части, а не для первый.

,

1

В продолжение предыдущего ответа, ваше решение:

  • измените предыдущий Serial.print() на Serial.println() так, чтобы за этим текстом следовал конец строки, или
  • добавьте \n в начало строки, с которой у вас возникла проблема, чтобы она началась с новой строки, чтобы компенсировать «отсутствующую» новую строку в предыдущем Serial.print().
,