|
ELIOT1 HAL
|
Интерфейс драйвера UART. Подробнее...
#include "hal_common.h"Структуры данных | |
| struct | uart_config |
| Конфигурация UART. Подробнее... | |
| struct | uart_transfer |
| Указатель на буфер приема или передачи Подробнее... | |
| struct | uart_handle |
| Дескриптор состояния приема/передачи для неблокирующих функций обмена Подробнее... | |
Макросы | |
| #define | HAL_UART_DRIVER_VERSION (MAKE_VERSION(0, 1, 0)) |
| Версия драйвера UART. | |
| #define | UART_RETRY_TIMES 0U /* 0 - ожидание до получения значения */ |
| Количество циклов ожидания | |
Определения типов | |
| typedef void(* | uart_transfer_callback_t) (UART_Type *base, struct uart_handle *handle, enum uart_status status, void *user_data) |
| Сallback-функция | |
Перечисления | |
| enum | uart_status |
| Статусы драйвера UART. Подробнее... | |
| enum | uart_interrupt_enable |
| Конфигурация прерываний для UART. Подробнее... | |
| enum | uart_lsr_flags |
| Флаги состояния UART LSR. Подробнее... | |
| enum | uart_parity_mode |
| Режимы четности UART. Подробнее... | |
| enum | uart_stop_bit_count |
| Количество стоп-битов для UART. Подробнее... | |
| enum | uart_data_len |
| Количество бит данных в передаваемом символе Подробнее... | |
| enum | uart_txfifo_watermark |
| Триггер уровня заполненности TxFIFO. Подробнее... | |
| enum | uart_rxfifo_watermark |
| Триггер уровня заполненности RxFIFO. Подробнее... | |
| enum | uart_rs485_mode |
| Режим работы RS485. Подробнее... | |
| enum | uart_rs485_active_state |
| Активное сотояние линии для RS485. Подробнее... | |
Функции | |
Инициализация и деинициализация | |
| enum uart_status | UART_Init (UART_Type *base, const struct uart_config *config, uint32_t src_clock_hz) |
| Инициализирует модуль UART структурой конфигурации пользователя и частотой периферии | |
| enum uart_status | UART_Deinit (UART_Type *base) |
| Деинициализирует модуль UART. | |
| enum uart_status | UART_GetDefaultConfig (struct uart_config *config) |
| Получает структуру конфигурации по умолчанию | |
| enum uart_status | UART_SetBaudRate (UART_Type *base, uint32_t baudrate_bps, uint32_t src_clock_hz) |
| Устанавливает скорость модуля UART. | |
Состояние | |
| static uint32_t | UART_GetStatusFlags (UART_Type *base) |
| Извлекает флаги состояния UART. | |
Включение/выключение и настройка прерываний | |
| static void | UART_EnableInterrupts (UART_Type *base, uint32_t mask) |
| Разрешает прерывания UART в соответствии с предоставленной маской | |
| static void | UART_DisableInterrupts (UART_Type *base, uint32_t mask) |
| Отключает прерывания UART в соответствии с предоставленной маской | |
| static uint32_t | UART_GetEnabledInterrupts (UART_Type *base) |
| Запрос маски включенных прерываний в UART. | |
| static void | UART_SetRxFifoWatermark (UART_Type *base, enum uart_rxfifo_watermark water) |
| Устанавливает триггер уровня заполненности RxFIFO. | |
| static void | UART_SetTxFifoWatermark (UART_Type *base, enum uart_txfifo_watermark water) |
| Устанавливает триггер уровня заполненности TxFIFO. | |
Включение/выключение и настройка расширенных режимов работы UART | |
| static void | UART_SetLoopback (UART_Type *base, bool enable) |
| Включение/выключение режима петли | |
| static void | UART_SetIr (UART_Type *base, bool enable) |
| Включение/выключение инфракрасного режима работы | |
| static void | UART_SetRs485 (UART_Type *base, bool enable) |
| Включение/выключение RS485 режима работы | |
| static void | UART_Rs485Mode (UART_Type *base, enum uart_rs485_mode mode, enum uart_rs485_active_state de, enum uart_rs485_active_state re) |
| Установка режима работы RS485. | |
Прием и передача без использования прерываний | |
| static void | UART_WriteByte (UART_Type *base, uint8_t data) |
| Записывает данные на передачу в регистр передачи | |
| static void | UART_WriteByteWait (UART_Type *base, uint8_t data) |
| Записывает данные на передачу в регистр передачи c ожиданием освобождения места | |
| static uint8_t | UART_ReadByte (UART_Type *base) |
| Вычитывает байт из регистра приема | |
| static uint8_t | UART_ReadByteWait (UART_Type *base) |
| Вычитывает байт из регистра приема с ожиданием получения | |
| static uint8_t | UART_GetRxFifoCount (UART_Type *base) |
| Получить количество байтов в RxFIFO. | |
| static uint8_t | UART_GetTxFifoCount (UART_Type *base) |
| Получить количество байтов в TxFIFO. | |
| enum uart_status | UART_WriteBlocking (UART_Type *base, const uint8_t *data, size_t length) |
| Записывает в регистр TX с использованием метода блокировки | |
| enum uart_status | UART_ReadBlocking (UART_Type *base, uint8_t *data, size_t length) |
| Чтение регистра данных RX с использованием метода блокировки | |
Прием данных через прерывания с использованием буферов | |
| enum uart_status | UART_TransferStartRingBuffer (UART_Type *base, struct uart_handle *handle, uint8_t *ring_buffer, size_t ring_buffer_size) |
| Инициализация колцевого буфера на прием | |
| enum uart_status | UART_TransferStopRingBuffer (UART_Type *base, struct uart_handle *handle) |
| Прерывает фоновую передачу и удаляет кольцевой буфер | |
| size_t | UART_TransferGetRxRingBufferLength (struct uart_handle *handle) |
| Получить длину данных, принятых в кольцевом RX буфере | |
| enum uart_status | UART_TransferReceiveNonBlocking (UART_Type *base, struct uart_handle *handle, struct uart_transfer *xfer, size_t *received_bytes) |
| Прием данных в асинхронном режиме (без ожидания) по прерыванию | |
| enum uart_status | UART_TransferAbortReceive (UART_Type *base, struct uart_handle *handle) |
| Отмена приема данных по прерыванию через линейный буфер в дескрипторе | |
| enum uart_status | UART_TransferGetReceiveCount (UART_Type *base, struct uart_handle *handle, uint32_t *count) |
| Возвращает количество принятых байтов | |
Отправка данных через прерывания с использованием буферов | |
| enum uart_status | UART_TransferSendNonBlocking (UART_Type *base, struct uart_handle *handle, struct uart_transfer *xfer) |
| Передает буфер данных по прерыванию | |
| enum uart_status | UART_TransferAbortSend (UART_Type *base, struct uart_handle *handle) |
| Останавливает передачу данных, управляемую прерыванием | |
| enum uart_status | UART_TransferGetSendCount (UART_Type *base, struct uart_handle *handle, uint32_t *count) |
| Возвращает количество байтов, отправленных в шину | |
| enum uart_status | UART_TransferStartTxRingBuffer (UART_Type *base, struct uart_handle *handle, uint8_t *tx_ring_buffer, size_t ring_buffer_size) |
| Инициализация колцевого буфера на передачу | |
| size_t | UART_TransferGetTxRingBufferLength (struct uart_handle *handle) |
| Получить количество байт данных для отправки в кольцевом Tx буфере | |
| enum uart_status | UART_WriteTxRing (UART_Type *base, struct uart_handle *handle, const uint8_t *data, size_t *length) |
| Передать линейный буфер на передачу через кольцевой буфер | |
| enum uart_status | UART_TransferStopTxRingBuffer (UART_Type *base, struct uart_handle *handle) |
| Отключение кольцевого буфера передатчика | |
Прием и передача через прерывания с использованием буферов | |
| enum uart_status | UART_TransferCreateHandle (UART_Type *base, struct uart_handle *handle, uart_transfer_callback_t callback, void *user_data) |
| Инициализирует дескриптор UART. | |
| void | UART_TransferHandleIRQ (UART_Type *base, struct uart_handle *handle) |
| Функция-обработчик UART IRQ. | |
Интерфейс драйвера UART.