Raspberry Pi:Библиотеки/WiringPi/Функции для работы с последовательным портом

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.



WiringPi: Функции для работы с последовательным портом[1]

WiringPi содержит набор функций для упрощенной работы с последовательным портом. Их можно использовать для последовательного порта, встроенного в Pi, или для любого другого USB-устройства, тип коммуникации которого не сильно отличается от того, что используется последовательным портом Pi.

Чтобы использовать эти функции, к вашей программе нужно будет подключить следующий заголовочный файл:

#include <wiringSerial.h>

После этого вам станут доступны следующие функции:

Продвинутая работа с последовательным портом

Функции выше – в сущности, лишь упрощенные и универсальные инструменты для работы с последовательным портом. Однако если вам нужно более продвинутое управление, т.е. контроль по четности, линии для управления модемом (через USB-адаптер, на Pi встроенного UART, к сожалению, нет) и т.д., то для этого к делу нужно будет подойти по старинке.

К примеру, чтобы выставить последовательный порт в режим, использующий 7 бит и контроль четности, вам нужно проделать следующее...

В начале программы пишем:

#include <termios.h>

А в самой функции пишем:

  struct termios options ;

  tcgetattr (fd, &options) ;   // считываем текущие значения
  options.c_cflag &= ~CSIZE ;  // определение размера с помощью 
                               // битовой маски
  options.c_cflag |= CS7 ;     // или 7 бит
  options.c_cflag |= PARENB ;  // включаем контроль четности  
                               // (по умолчанию)
  tcsetattr (fd, &options) ;   // задаем новые значения

Переменная fd выше – это файловый дескриптор, возвращаемый функцией serialOpen().

О всех опциях, которые можно задать подобным образом, читайте в мануале:

man tcgetattr

Прерывания

См.также

Внешние ссылки