Arduino:Справочник языка Arduino/Библиотеки/Serial/print()
Поддержать проект | Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Содержание
Функция print[1]
Пересылает через последовательный порт данные в виде ASCII-текста. Эта функция может принимать разные формы. Для отображения цифр используются ASCII-символы, соответствующие этим цифрам. Для отображения чисел с плавающей точкой тоже используются ASCII-символы, соответствующие этим числам (по умолчанию — с двумя знаками после запятой). Байты отсылаются в виде отдельных символов. Символы и строки отсылаются как есть. Например:
1 Serial.print(78) дает «78»
2 Serial.print(1.23456) дает «1.23»
3 Serial.print('N') дает «N»
4 Serial.print("Hello World.") дает «Hello World.»
У этой функции есть и еще один (опциональный) параметр, который указывает формат пересылаемых данных. Допустимые значения — BIN (двоичный формат; или основание 2), OCT (восьмеричный формат; или основание 8), DEC (десятичный формат; или основание 10) и HEX (шестнадцатеричный; или основание 16). Для чисел с плавающей точкой в этом параметре указывается количество знаков после запятой. Например:
1 Serial.print(78, BIN) дает «1001110»
2 Serial.print(78, OCT) дает «116"
3 Serial.print(78, DEC) дает «78»
4 Serial.print(78, HEX) дает «4E»
5 Serial.println(1.23456, 0) дает «1»
6 Serial.println(1.23456, 2) дает «1.23»
7 Serial.println(1.23456, 4) дает «1.2346»
Кроме того, при помощи этой функции можно выводить строки, сохраненные во flash-памяти, для чего нужно воспользоваться макросом F(). Например:
Serial.print(F("Hello World"))
Если вам нужно отправить один байт, используйте Serial.write().
Синтаксис
Serial.print(val)
Serial.print(val, format)
Параметры
val — значение, которое нужно вывести (данные любого типа)
format — значение для указания формата (для целых чисел) или для знаков после запятой (для чисел с плавающей точкой)
Что возвращает
Количество записанных байтов (считывание этого значения — опционально). Тип данных — long.
Пример
1 /*
2 Пример использования цикла for() для вывода чисел в различных форматах.
3 */
4 int x = 0; // переменная
5
6 void setup() {
7 Serial.begin(9600); // открывает последовательный порт на скорости 9600 бит/сек:
8 }
9
10 void loop() {
11 // Выводим метки:
12 Serial.print("NO FORMAT"); // Выводим надпись
13 Serial.print("\t"); // Выводим «Tab»
14
15 Serial.print("DEC");
16 Serial.print("\t");
17
18 Serial.print("HEX");
19 Serial.print("\t");
20
21 Serial.print("OCT");
22 Serial.print("\t");
23
24 Serial.print("BIN");
25 Serial.print("\t");
26
27
28 for(x=0; x< 64; x++){ // Выводим немного ASCII-символов; если требуется, эту строчку можно поменять
29
30 // Начинаем выводить числа в разных форматах:
31 Serial.print(x); // выводим «x» как десятичное число (это то же самое, что и формат DEC)
32 Serial.print("\t"); // Выводим «Tab»
33
34 Serial.print(x, DEC); // выводим «x» как десятичное число
35 Serial.print("\t"); // Выводим «Tab»
36
37 Serial.print(x, HEX); // выводим «х» как шестнадцатеричное число
38 Serial.print("\t"); // Выводим «Tab»
39
40 Serial.print(x, OCT); // выводим «х» как восьмеричное число
41 Serial.print("\t"); // Выводим «Tab»
42
43 Serial.println(x, BIN); // выводим «х» как двоичное число
44 // затем при помощи println() добавляем символ разрыва строки
45 delay(200); // задержка в 200 миллисекунд
46 }
47 Serial.println(""); // добавляем еще один символ разрыва строки
48 }
Совет
В версии Arduino 1.0 (и выше) последовательная передача данных выполняется асинхронно, вследствие чего Serial.print() будет возвращать результат еще до отправки данных.
См.также
- begin()
- end()
- available()
- read()
- peek()
- flush()
- print()
- println()
- write()
- SerialEvent()
- Memory
Внешние ссылки