19#define HAL_UART_DMA_DRIVER_VERSION (MAKE_VERSION(1, 0, 0))
53#if defined(__cplusplus)
134 while (base->USR & UART_USR_BUSY_Msk);
149 uint32_t data_width,
void *src_addr)
153 .data_size = data_size,
161 .src_data_width = data_width,
162 .dst_data_width = data_width,
163 .src_addr = src_addr,
164 .dst_addr = (
void *) &base->THR,
183 uint32_t data_width,
void *dst_addr)
187 .data_size = data_size,
195 .src_data_width = data_width,
196 .dst_data_width = data_width,
197 .src_addr = (
void *) &base->RBR,
198 .dst_addr = dst_addr,
205#if defined(__cplusplus)
void DMA_InitMultiblockDescriptor(dma_descriptor_t *desc, dma_multiblock_config_t *config)
Функция, инициализирующая DMA дескрипторы многоблочной передачи.
@ DMA_NoChange
Definition hal_dma.h:165
@ DMA_Incr
Definition hal_dma.h:163
@ DMA_PeripheralToMemory_DMA
Definition hal_dma.h:213
@ DMA_MemoryToPeripheral_DMA
Definition hal_dma.h:212
@ DMA_BurstSize1
Definition hal_dma.h:149
@ DMA_BurstSize32
Definition hal_dma.h:153
static void UART_DMADescriptorInitTX(UART_Type *base, dma_descriptor_t *desc, uint32_t count, uint32_t data_size, uint32_t data_width, void *src_addr)
Инициализация дескрипторов DMA для многоблочной передачи TX.
Definition hal_uart_dma.h:147
enum uart_status UART_TransferSendDMA(UART_Type *base, uart_dma_handle_t *handle, struct uart_transfer *xfer)
Функция осуществляющая передачу данных по UART, данные в буфер попадают через DMA канал
static void UART_WaitWhileActive(UART_Type *base)
Ожидание завершения передачи. Выход из функции будет осуществлен по окончании UART транзакций
Definition hal_uart_dma.h:131
void UART_TransferAbortSendDMA(UART_Type *base, uart_dma_handle_t *handle)
Функция прерывающая передачу данных между UART(TX) и DMA.
static void UART_DMADescriptorInitRX(UART_Type *base, dma_descriptor_t *desc, uint32_t count, uint32_t data_size, uint32_t data_width, void *dst_addr)
Инициализация дескрипторов DMA для многоблочной передачи TX.
Definition hal_uart_dma.h:181
enum uart_status UART_TransferReceiveDMA(UART_Type *base, uart_dma_handle_t *handle, struct uart_transfer *xfer)
Функция осуществляющая передачу данных по UART, данные в буфер попадают через DMA канал
void UART_TransferCreateHandleDMA(UART_Type *base, uart_dma_handle_t *handle, uart_dma_transfer_callback_t callback, void *user_data, dma_handle_t *tx_dma_handle, dma_handle_t *rx_dma_handle)
Функция для инициализации полей дескриптора UART-DMA.
void UART_TransferAbortReceiveDMA(UART_Type *base, uart_dma_handle_t *handle)
Функция прерывающая передачу данных между UART(RX) и DMA.
void(* uart_dma_transfer_callback_t)(UART_Type *base, uart_dma_handle_t *handle, enum uart_status status, void *user_data)
Функция обратного вызова
Definition hal_uart_dma.h:27
uart_status
Статусы драйвера UART.
Definition hal_uart.h:45
Интерфейс драйвера прямого доступа к памяти
Описатель следующего блока DMA (LLI)
Definition hal_dma.h:222
Управляющая структура передачи
Definition hal_dma.h:296
Конфигурация многоблочной передачи
Definition hal_dma.h:306
uint32_t count
Definition hal_dma.h:307
Дескриптор UART-DMA передачи
Definition hal_uart_dma.h:35
volatile uint8_t rx_state
Definition hal_uart_dma.h:50
uint32_t rx_data_size_all
Definition hal_uart_dma.h:40
UART_Type * base
Definition hal_uart_dma.h:36
dma_handle_t * rx_dma_handle
Definition hal_uart_dma.h:44
dma_handle_t * tx_dma_handle
Definition hal_uart_dma.h:43
uint32_t tx_data_size_all
Definition hal_uart_dma.h:41
void * user_data
Definition hal_uart_dma.h:39
volatile uint8_t tx_state
Definition hal_uart_dma.h:49
uart_dma_transfer_callback_t callback
Definition hal_uart_dma.h:38
Указатель на буфер приема или передачи
Definition hal_uart.h:193