19#define HAL_SPI_DMA_DRIVER_VERSION (MAKE_VERSION(0, 1, 0))
21#define I2C_MAX_BUFFER_SIZE (8U)
48#if defined(__cplusplus)
108 uint8_t src_incr,
void *src_addr)
112 .data_size = data_size,
118 .src_incr = src_incr,
122 .src_addr = src_addr,
123 .dst_addr = (
void *) &base->IC_DATA_CMD,
143 uint8_t dst_incr,
void *dst_addr)
147 .data_size = data_size,
154 .dst_incr = dst_incr,
157 .src_addr = (
void *) &base->IC_DATA_CMD,
158 .dst_addr = dst_addr,
165#if defined(__cplusplus)
void DMA_InitMultiblockDescriptor(dma_descriptor_t *desc, dma_multiblock_config_t *config)
Функция, инициализирующая DMA дескрипторы многоблочной передачи.
@ DMA_NoChange
Definition hal_dma.h:165
@ 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
@ DMA_Transfer8BitWidth
Definition hal_dma.h:137
void I2C_MasterTransferAbortDMA(I2C_Type *base, i2c_master_dma_handle_t *handle)
Прекращение передачи I2C.
static void I2C_DMADescriptorInitTX(I2C_Type *base, dma_descriptor_t *desc, uint32_t count, uint32_t data_size, uint8_t src_incr, void *src_addr)
Инициализация дескрипторов DMA для многоблочной передачи TX.
Definition hal_i2c_dma.h:106
static void I2C_DMADescriptorInitRX(I2C_Type *base, dma_descriptor_t *desc, uint32_t count, uint32_t data_size, uint8_t dst_incr, void *dst_addr)
Инициализация дескрипторов DMA для многоблочной передачи RX.
Definition hal_i2c_dma.h:141
void(* i2c_master_dma_transfer_callback_t)(I2C_Type *base, i2c_master_dma_handle_t *handle, void *user_data)
Функция обратного вызова
Definition hal_i2c_dma.h:30
void I2C_MasterTransferCreateHandleDMA(I2C_Type *base, i2c_master_dma_handle_t *handle, i2c_master_dma_transfer_callback_t callback, void *user_data, dma_handle_t *tx_dma, dma_handle_t *rx_dma)
Функция инициализации дескриптора I2C-DMA.
i2c_master_transfer_states
Состояния для конечного автомата, используемого при обмене. FSM TODO.
Definition hal_i2c.h:220
i2c_status_t I2C_MasterTransferDMA(I2C_Type *base, i2c_master_dma_handle_t *handle, i2c_master_transfer_t *xfer)
Функция, запускающая I2C транзакцию. Данные в буфер/из буфера I2C передаются с помощью I2C.
i2c_status_t
Коды возврата функций модуля I2C.
Definition hal_i2c.h:65
Интерфейс драйвера прямого доступа к памяти
Интерфейс драйвера модуля I2C.
Описатель следующего блока 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
Контекст данных прерывания I2C-DMA.
Definition hal_i2c_dma.h:35
dma_handle_t * rx_dma
Definition hal_i2c_dma.h:41
dma_descriptor_t * tx_desc
Definition hal_i2c_dma.h:42
dma_descriptor_t * rx_desc
Definition hal_i2c_dma.h:43
i2c_master_dma_transfer_callback_t completion_callback
Definition hal_i2c_dma.h:44
dma_handle_t * tx_dma
Definition hal_i2c_dma.h:40
i2c_master_transfer_states state
Definition hal_i2c_dma.h:36
uint32_t remaining_bytes_DMA
Definition hal_i2c_dma.h:37
void * user_data
Definition hal_i2c_dma.h:45
uint32_t * dummy_data
Definition hal_i2c_dma.h:39
uint8_t * buf
Definition hal_i2c_dma.h:38
Структура дескриптора для неблокирующего обмена.
Definition hal_i2c.h:320