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.