Последовательный интерфейс

Данная универсальная библиотека последовательного интерфейса 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_STOPBITS_ONE - Один стоп-бит.
    • USART_STOPBITS_TWO - Два стоп-бита.
  • usart_parity
    Тип выбора контроля парности. Варианты значений:
    • USART_PARITY_NONE - Контроль парности и бита не используется.
    • USART_PARITY_EVEN - Контроль чётности.
    • USART_PARITY_ODD - Контроль нечётности.

Функции

  • USART_BAUDRATE_ASYNC(baud)

Макрофункция для вычисления значения асинхронного регистра скорости в бодах USART модуля. Параметры:

  • baud - Скорость в бодах.
  • Возвращает значение регистра скорости в бодах.
  • 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.

 

  • void usart_send_char(usart port, char symbol)

Blokeeruv sümboli saatmise funktsioon. Funktsioon ootab, kuni saatmise puhver tühjeneb ja kirjutab sinna saatmiseks uue sümboli. Parameetrid:

  • port - Переменная интерфейса USART.
  • symbol - Отправляемый символ.
  • void usart_send_string(usart port, char *text)

Блокирующая функция отправки текста. Параметры:

  • port - Переменная интерфейса USART.
  • text - Указатель текста. Текст должен заканчиваться бинарным символом 0.
  • bool usart_has_data(usart port)

Контроль наличия данных в буфере приёма. Параметры:

  • port - Переменная интерфейса USART.
  • Возвращает значение true, если в буфере приёма есть символ и false, если нет
  • char usart_read_char(usart port)

Считывание символа из буфера приёма. Перед считыванием следует убедиться, что в буфере есть символ. Параметры:

  • port - Переменная интерфейса USART.
  • Возвращает символ.
  • bool usart_try_read_char(usart port, char *symbol)

Контроль наличия символа в буфере приёма и общая функция его считывания. Параметры:

  • 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);
}
ru/software/homelab/library/usart.txt · Last modified: 2020/07/20 09:00 by 127.0.0.1
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0