This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| ru:software:homelab:library:usart [2013/08/14 22:46] – создано eduardtlmk | ru:software:homelab:library:usart [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Последовательный интерфейс ====== | ||
| - | |||
| - | Данная универсальная библиотека последовательного интерфейса AVR позволяет записывать и считывать данные асинхронно. | ||
| - | |||
| - | ===== Типы данных ===== | ||
| - | |||
| - | * **// | ||
| - | * **// | ||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | * **// | ||
| - | * // | ||
| - | * // | ||
| - | * **// | ||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | |||
| - | ===== Функции ===== | ||
| - | |||
| - | * **// | ||
| - | Макрофункция для вычисления значения асинхронного регистра скорости в бодах USART модуля. Параметры: | ||
| - | * //baud// - Скорость в бодах. | ||
| - | * Возвращает значение регистра скорости в бодах. | ||
| - | |||
| - | * **//void usart_init_async(usart port, usart_databits data_bits, usart_stopbits stop_bits, usart_parity parity, usart_baudrate baudrate)// | ||
| - | Установка последовательного интерфейса асинхронным. Параметры: | ||
| - | * //port// - USART liidese muutuja. | ||
| - | * // | ||
| - | * // | ||
| - | * //parity// - Paarsuse tüüp. | ||
| - | * // | ||
| - | ~~PB~~ | ||
| - | * **//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 битов данных, | ||
| - | |||
| - | <code c> | ||
| - | #include < | ||
| - | |||
| - | usart port = USART(0); | ||
| - | |||
| - | int main(void) | ||
| - | { | ||
| - | char c; | ||
| - | |||
| - | // Настройка интерфейса | ||
| - | usart_init_async(port, | ||
| - | USART_PARITY_NONE, | ||
| - | |||
| - | // Отправка текста | ||
| - | usart_send_string(port, | ||
| - | |||
| - | // Ожидание входящего символа | ||
| - | while (!usart_has_data(port)) {} | ||
| - | |||
| - | // Считывание символа | ||
| - | c = usart_read_char(port); | ||
| - | } | ||
| - | </ | ||