Raspberry Pi:Библиотеки/WiringPi/Функции для работы с последовательным портом
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
WiringPi: Функции для работы с последовательным портом[1]
WiringPi содержит набор функций для упрощенной работы с последовательным портом. Их можно использовать для последовательного порта, встроенного в Pi, или для любого другого USB-устройства, тип коммуникации которого не сильно отличается от того, что используется последовательным портом Pi.
Чтобы использовать эти функции, к вашей программе нужно будет подключить следующий заголовочный файл:
#include <wiringSerial.h>
После этого вам станут доступны следующие функции:
- serialOpen()
- serialClose()
- serialPutchar()
- serialPuts()
- serialPrintf()
- serialDataAvail()
- serialGetchar()
- serialFlush()
Продвинутая работа с последовательным портом
Функции выше – в сущности, лишь упрощенные и универсальные инструменты для работы с последовательным портом. Однако если вам нужно более продвинутое управление, т.е. контроль по четности, линии для управления модемом (через 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