Лекция 51 Ардуино и набор функций Serial 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Лекция 51 Ардуино и набор функций Serial



Цели лекции:

1. Знакомство с функцией Serial.begin()

2. Знакомство с функцией Serial.end()

3. Знакомство с функцией Serial.availabel()

4. Знакомство с функцией Serial.read()

5. Знакомство с функцией Serial.flush()

6. Знакомство с функцией Serial.print()

7. Знакомство с функцией Serial.println()

8. Знакомство с функцией Serial.write()

9. Знакомство с функцией Serial.peek

10. Знакомство с функцией SoftwareSerial() библиотеки SoftwareSerial

11. Знакомство с функцией SoftwareSerial.listen() библиотеки SoftwareSerial

12. Знакомство с функцией SoftwareSerial.isListening() библиотеки SoftwareSerial

13. Знакомство с функцией SoftwareSerial.jverflow() библиотеки SoftwareSerial

 

Плата Arduino Mega имеет три дополнительных последовательных порта: Serial на портах 19 (RX) и 18 (TX), Serial2 на портах 17 (RX) и 16 (TX), Serial3 на портах 15 (RX) и 14 (TX). Чтобы использовать эти порты для связи с компьютером, пона­добятся дополнительные адаптеры USB-to-serial, т. к. они не подключены к встро­енному адаптеру платы Mega.

 


Функции библиотеки Serial

Функция Serial.begin()

Функция Seriai.begin() инициирует последовательное соединение и задает ско­рость передачи данных в бит/c (бод). Для обмена данными с компьютером исполь­зуйте следующие значения: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 или 115200. При соединении через порты входа/выхода 0 и 1 могут быть ис­пользованы другие значения скорости, требуемые устройством, с которым будет осуществляться обмен данными.

Синтаксис функции Serial.begin ():

 

Serial.begin(speed)

Для Arduino Mega и Arduino Due:

Seriail.begin(speed)

Serial2.begin(speed)

Seriai3.begin(speed)

Параметр: speed — скорость в бит/c (бод) (iong).

Возвращаемого значения нет.

 

Функция Serial.end()

Функция Seriai.end() закрывает последовательное соединение, порты RX и TX освобождаются и могут быть использованы для ввода/вывода.

Синтаксис функции Seriai.end():

Seriai.end()

Для Arduino Mega и Arduino Due:

Seriail.end()

Seriai2.end()

Seriai3.end()

Параметра нет.

Возвращаемого значения нет.

 

Функция Serial.available()

Функция Seriai.available() получает количество байтов (символов), доступных для чтения из последовательного интерфейса связи. Это те байты, которые уже по­ступили и записаны в буфер последовательного порта. Буфер может хранить до 128 байтов.

Синтаксис функции Seriai.available():

Seriai.available()

Для Arduino Mega и Arduino Due:

Seriail. available()

Seriai2.available()

Seriai3. available()

Параметра нет.

Возвращаемое значение — количество байтов, доступных для чтения (int).

 

Функция Serial.read()

Функция Serial.read() считывает очередной доступный байт из буфера последо­вательного соединения.

Синтаксис функции Serial.read():

Serial.read()

Для Arduino Mega и Arduino Due:

Serial1.read()

Serial2.read()

Serial3.read()

Параметра нет.

Возвращаемое значение — следующий доступный байт или -1, если его нет (int).

 


Примеры использования функций Serial.available() и Serial.read():

 

int in=0; // переменная для хранения полученного байта

void setup() {

Serial.begin(9600); // устанавливаем последовательное соединение }

void loop()

{

if (Serial.available() > 0) // если есть доступные данные {

// считываем байт in = Serial.read();

// отсылаем то, что получили Serial.println(in,DEC);

}

}

 

Функция Serial.flush()

Функция Serial. flush() ожидает окончания передачи исходящих данных (до вер­сии Arduino 1.0 функция очищала буфер последовательного соединения).

Синтаксис функции Serial.flush ():

Serial.flush()

Для Arduino Mega и Arduino Due:

Serial1.flush()

Serial2.flush()

Serial3.flush()

Параметра нет.

Возвращаемого значения нет.

 

Функция Serial.print()

Функция Serial.print() передает данные через последовательный порт как текст ASCII. Эта функция может принимать различные типы данных. С помощью второ­го опционального параметра можно задать базис (систему счисления) для чисел.

Синтаксис функции Serial.print ():

Serial.print(val)

Serial.print(val, format)

Для Arduino Mega и Arduino Due: Serial1, Serial2, Serial3.

Параметры:

- val — данные для передачи через последовательное соединение;

- format — базис для целых чисел или количество знаков после запятой для веще­ственных:

- byte;

- bin (двоичный);

- OCT (восьмеричный);

- DEC (десятеричный);

- hex (шестнадцатеричный);

- для вещественных (дробных) чисел второй параметр задает количество зна­ков после запятой.

Возвращаемого значения нет.

 

Функция Serial.println()

Функция Serial.println() передает данные через последовательный порт как текст ASCII вместе со следующим за ним символом переноса строки (символ ASCII 13 или V) и символом новой строки (ASCII 10 или '\n'). Пераметры и типы данных для этой функции такие же, как и для функции Serial.print ().

 

Функция Serial.write()

Функция Serial.write() передает данные как бинарный код через последователь­ное соединение. Данные посылаются единичным байтом или серией байтов. Для того, чтобы передать данные как символы, следует использовать другую функ­цию print ().

Синтаксис функции Serial.write ():

Serial.write(val)

Serial.write(str)

Serial.print(buf, len)

Для Arduino Mega: Serial1, Serial2, Serial3.

Параметры:

- val — один байт;

- str — строка как серия байтов;

- buf — массив байтов;

- len — длина массива.

Возвращаемого значения нет.

 

Функция Serial.peek()

Функция Serial.peek() возвращает следующий доступный байт (символ) из буфера входящего последовательно соединения, не удаляя его из этого буфера. То есть успешный вызов этой фунции вернет то же значение, что и следующий за ним вы­зов функции read().

Синтаксис функции Serial.peek():

Serial.peek()

Для Arduino Mega и Arduino Due:

Serial1.peek()

Serial2.peek()

Serial3.peek()

Параметра нет.

Возвращаемое значение — следующий доступный байт или -1, если его нет (int).

 

Библиотека SoftwareSerial

Библиотека SoftwareSerial позволяет осуществить последовательную передачу данных через другие цифровые контакты Arduino. Можно иметь несколько про­граммных последовательных портов со скоростью до 115 200 битов. Программное обеспечение SoftwareSerial копирует функциональность библиотеки Serial (отсю­да и название "SoftwareSerial"), но с некоторыми ограничениями:

- при использовании нескольких программных последовательных портов только один может принимать данные одновременно;

- на платах Mega и    Mega 2560 для RX могут быть использованы только следующие контакты: 10, 11, 12, 13, 14,    15, 50, 51, 52, 53, A8 (62), A9 (63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69);

- на плате Leonardo для RX могут быть использованы только следующие контакты: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).

 

Библиотека SoftwareSerial включает следующие функции:

- SoftwareSerial() - read()
- available() - print()
- begin() - println()
- isListening() - listen()
- overflow() - write()
- peek ()  

 

В целом эти функции аналогичны функциям библиотеки Serial, поэтому далее мы рассмотрим только функции, уникальные для библиотеки SoftwareSerial.

 

Функция SoftwareSerial()

Функция SoftwareSerial () создает экземпляр объекта последовательного порта SoftwareSerial. Для запуска последовательного порта на выводах rxPin, txPin необ­ходимо выполнить функцию SoftwareSerial. begin().

Синтаксис функции SoftwareSerial():

SoftwareSerial(rxPin, txPin)

Параметры:

- rxPin — вывод для получения последовательных данных;

- txPin — вывод для отправки последовательных данных.

Возвращаемое значение — экземпляр объекта SoftwareSerial.

 



Поделиться:


Последнее изменение этой страницы: 2021-02-07; просмотров: 316; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.109.30 (0.011 с.)