Serial.print()

Описание

Выводит данные в последовательный порт в виде читаемого человеком ASCII-текста. Эта команда может принимать множество форм. Числа выводятся с использованием ASCII-символа для каждой цифры. Числа с плавающей точкой выводятся аналогично ASCII-цифрам, по умолчанию — с двумя десятичными знаками. Байты отправляются как один символ. Символы и строки отправляются как есть. Например:

  • Serial.print(78) выдаёт «78»

  • Serial.print(1.23456) выдаёт «1.23»

  • Serial.print('N') выдаёт «N»

  • Serial.print("Hello world.") выдаёт «Hello world.»

Необязательный второй параметр задаёт основание (формат) для использования; допустимые значения: BIN (двоичная, основание 2), OCT (восьмеричная, основание 8), DEC (десятичная, основание 10), HEX (шестнадцатеричная, основание 16). Для чисел с плавающей точкой этот параметр задаёт количество десятичных знаков. Например:

  • Serial.print(78, BIN) выдаёт «1001110»

  • Serial.print(78, OCT) выдаёт «116»

  • Serial.print(78, DEC) выдаёт «78»

  • Serial.print(78, HEX) выдаёт «4E»

  • Serial.print(1.23456, 0) выдаёт «1»

  • Serial.print(1.23456, 2) выдаёт «1.23»

  • Serial.print(1.23456, 4) выдаёт «1.2346»

Можно передавать в Serial.print() строки, расположенные во flash-памяти, обернув их в F(). Например:

Serial.print(F("Hello World"))

Чтобы отправить данные без преобразования в их символьное представление, используйте Serial.write().

Синтаксис

Используйте следующую функцию для вывода любых данных по последовательной связи:

  • Serial.print(val)

  • Serial.print(val, format)

Параметры

Функция принимает следующие объекты и параметры:

  • Serial: объект последовательного порта. Список доступных последовательных портов для каждой платы см. на главной странице Serial.

  • val: значение для вывода. Допустимые типы данных: любой тип данных.

  • format: задаёт основание системы счисления (для целочисленных типов данных) или количество десятичных знаков (для типов с плавающей точкой).

Возвращаемое значение

Функция возвращает количество записанных байт, хотя чтение этого числа необязательно. Тип данных: size_t.

Пример кода

/*
  Использует цикл for для вывода чисел в различных форматах.
*/
void setup() {
  Serial.begin(9600); // открыть последовательный порт на 9600 бит/с:
}

void loop() {
  // вывести подписи
  Serial.print("NO FORMAT");  // выводит метку
  Serial.print("\t");         // выводит табуляцию

  Serial.print("DEC");
  Serial.print("\t");

  Serial.print("HEX");
  Serial.print("\t");

  Serial.print("OCT");
  Serial.print("\t");

  Serial.print("BIN");
  Serial.println();        // возврат каретки после последней метки

  for (int x = 0; x < 64; x++) { // только часть таблицы ASCII, измените под нужды
    // вывести в нескольких форматах:
    Serial.print(x);       // вывести как ASCII-кодированное десятичное — то же, что "DEC"
    Serial.print("\t\t");  // вывести две табуляции для соответствия длине метки

    Serial.print(x, DEC);  // вывести как ASCII-кодированное десятичное
    Serial.print("\t");    // выводит табуляцию

    Serial.print(x, HEX);  // вывести как ASCII-кодированное шестнадцатеричное
    Serial.print("\t");    // выводит табуляцию

    Serial.print(x, OCT);  // вывести как ASCII-кодированное восьмеричное
    Serial.print("\t");    // выводит табуляцию

    Serial.println(x, BIN);  // вывести как ASCII-кодированное двоичное
    // затем добавляет возврат каретки через "println"
    delay(200);            // задержка 200 миллисекунд
  }
  Serial.println();        // выводит ещё один возврат каретки
}

Примечания и предупреждения

Примечание

Информацию об асинхронности Serial.print() см. в разделе «Примечания и предупреждения» страницы справочника Serial.write().