Описание
Метод 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.println(1.23456, 0); //выведет "1"
Serial.println(1.23456, 2); //выведет "1.23"
Serial.println(1.23456, 4); //выведет "1.2346"
Метод Serial.print() можно передавать и строки, записанные во флеш-память контроллера. Для этого их нужно заключить в конструкцию F(). Например:
Serial.print(F(“Hello World”));
Для отправки отдельного байта используйте функцию Serial.write().
Синтаксис
Serial.print(val);
Serial.print(val, format);
Параметры
val - значение, которое необходимо вывести - любой тип данных.
format - определяет систему счисления (для целочисленных типов), а также количество десятичных знаков после запятой (для чисел с плавающей точкой).
Возвращаемые значения
size_t (long) - метод Serial.print() возвращает количество выведенных байт. Считывание этого значения не обязательно.
Пример
/*
Использования цикла FOR для обработки данных и вывода чисел в различных форматах.
*/
int x = 0; // переменная
void setup() {
Serial.begin(9600); // открываем последовательный порт на скорости 9600 бод
}
void loop() {
// print labels
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.print("\t");
for(x=0; x< 64; x++){ // немного ASCII-графики, можете изменить код по своему вкусу
// выводим значение в различных форматах:
Serial.print(x); // выводим как десятичное число - то же, что и формат "DEC"
Serial.print("\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(""); // выводим еще один символ возврата каретки
}
Совет:
Во всех версиях Ардуино, начиная с версии 1.0, последовательная передача данных осуществляется асинхронно, вследствие чего метод Serial.print() завершается до самой отправки данных.
Смотрите также:
available()
begin()
end()
flush()
peek()
println()
read()
setTimeout()
write()
serialEvent()
Memory
Библиотека Serial
Справочник
Материалы взяты с официального сайта проекта Arduino и представлены по лицензии Creative Commons Attribution-ShareAlike 3.0 License.
Источник: http://arduino.cc/en/Serial/Print |