Какова цель Serial.println() без аргумента?

Я пытаюсь управлять шаговым двигателем с помощью Sparkfun's Big Easy Driver, и я вижу строку "Serial.println();" они вставили пример кода. Почему нет аргумента и какую функцию он выполняет?

//Объявляем функции выводов на Arduino
#define stp 2
#define dir 3
#define MS1 4
#define MS2 5
#define MS3 6
#define EN  7

//Объявляем переменные для функций
char user_input;
int x;
int y;
int state;

void setup() {
  pinMode(stp, OUTPUT);
  pinMode(dir, OUTPUT);
  pinMode(MS1, OUTPUT);
  pinMode(MS2, OUTPUT);
  pinMode(MS3, OUTPUT);
  pinMode(EN, OUTPUT);
  resetBEDPins(); //Установим шаг, направление, микрошаг и включим контакты в состояния по умолчанию
  Serial.begin(9600); //Открываем последовательное соединение для отладки
  Serial.println("Begin motor control");
  Serial.println();
  //Печать списка функций для выбора пользователя
  Serial.println("Enter number for control option:");
  Serial.println("1. Turn at default microstep mode.");
  Serial.println("2. Reverse direction at default microstep mode.");
  Serial.println("3. Turn at 1/16th microstep mode.");
  Serial.println("4. Step forward and reverse directions.");
  Serial.println();
}

, 👍3

Обсуждение

печатает все, что есть в аргументе, за которым следует новая строка.... другими словами, печатается только новая строка, @jsotola

когда вы публикуете код в вопросе, выделите весь код и нажмите ctrl-k или нажмите кнопку {}.... весь код будет иметь отступ на 4 пробела, что приведет к его отображению как код ...... голосую за беспокойство по поводу форматирования кода, @jsotola

Это просто. Спасибо! Итак, если бы вы раньше печатали текст (в кавычках), того же эффекта можно было бы достичь, вставив «\n», верно?, @Jackalakalaka

да, serial.print("\n"); дает тот же результат, что и serial.println();, @jsotola

@jsotola: Нет, 'Serial.println() выводит '\r' перед '\n', а 'Serial.print("\n") — нет., @Edgar Bonet


2 ответа


2

Он просто выводит новую строку на последовательный монитор. Просто для пробела.

,

2

В дополнение к ответу Хосе можно: последовательный объект Arduino использует CRLF как маркер конца строки. Это ASCII CR (возврат каретки, или '\r' в C), за которым следует ASCII LF (перевод строки, '\n' в C). Таким образом,

Serial.println();

эквивалент

Serial.print("\r\n");
,

Это классное расширение некоторых фундаментальных вопросов форматирования. Благодарю вас за информацию, @Jackalakalaka