Последовательный интерфейс
Данная универсальная библиотека последовательного интерфейса AVR позволяет записывать и считывать данные асинхронно.
Типы данных
usart
Тип данных для хранения регистров интерфейса USART. usart-Переменная типа usart константна и её следует инициализировать в самом начале программы. Для упрощения инициализации существует макрофункция USART, параметром которой является индекс интерфейса (0 или 1).
usart_databits
Тип выбора числа бита данных. Варианты значений:
USART_DATABITS_5 - Битов данных 5.
USART_DATABITS_6 - Битов данных 6.
USART_DATABITS_7 - Битов данных 7.
USART_DATABITS_8 - Битов данных 8.
USART_DATABITS_9 - Битов данных 9.
usart_stopbits
Тип выбора числа стоп-битов. Варианты значений:
usart_parity
Тип выбора контроля парности. Варианты значений:
USART_PARITY_NONE - Контроль парности и бита не используется.
USART_PARITY_EVEN - Контроль чётности.
USART_PARITY_ODD - Контроль нечётности.
Функции
Макрофункция для вычисления значения асинхронного регистра скорости в бодах USART модуля. Параметры:
void usart_init_async(usart port, usart_databits data_bits, usart_stopbits stop_bits, usart_parity parity, usart_baudrate baudrate)
Установка последовательного интерфейса асинхронным. Параметры:
port - Переменная интерфейса USART.
data_bits - Число битов данных.
stop_bits - Число стоп-битов.
parity - Тип парности.
baudrate - Скорость передачи данных в бодах, которая рассчитана с помощью макро функции USART_BAUDRATE_ASYNC.
Blokeeruv sümboli saatmise funktsioon. Funktsioon ootab, kuni saatmise puhver tühjeneb ja kirjutab sinna saatmiseks uue sümboli. Parameetrid:
Блокирующая функция отправки текста. Параметры:
Контроль наличия данных в буфере приёма. Параметры:
port - Переменная интерфейса USART.
Возвращает значение true, если в буфере приёма есть символ и false, если нет
Считывание символа из буфера приёма. Перед считыванием следует убедиться, что в буфере есть символ. Параметры:
Контроль наличия символа в буфере приёма и общая функция его считывания. Параметры:
port - Переменная интерфейса USART.
symbol - Указатель символа. Если в буфере приёма есть символ, он будет записан сюда.
Возвращает значение true, если в буфере приёма есть символ и false, если нет.
Пример
Интерфейс настроен асинхронно на использование 8 битов данных, одного стоп-бита и без контроля парности на скорости передачи данных в бодах 9600. Программа отправляет текст и считывает входящий символ.
#include <homelab/usart.h>
usart port = USART(0);
int main(void)
{
char c;
// Настройка интерфейса
usart_init_async(port, USART_DATABITS_8, USART_STOPBITS_ONE,
USART_PARITY_NONE, USART_BAUDRATE_ASYNC(9600));
// Отправка текста
usart_send_string(port, "Tere!\r\n");
// Ожидание входящего символа
while (!usart_has_data(port)) {}
// Считывание символа
c = usart_read_char(port);
}