|
ELIOT1 HAL
|
Интерфейс драйвера модуля SPI. Подробнее...
#include "hal_common.h"Структуры данных | |
| struct | spi_microwire_cfg_t |
| Конфигурация для протокола Microwire National Semiconductor. Подробнее... | |
| struct | spi_motorola_cfg_t |
| Конфигурация для протокола Motorola SPI. Подробнее... | |
| struct | spi_config_t |
| Структура конфигурации для Master SPI. Подробнее... | |
| struct | spi_transfer_t |
| Структура SPI для приемо-передачи Подробнее... | |
| struct | spi_half_duplex_transfer_t |
| Структура SPI для полудуплексной приемо-передачи в режиме Master. Подробнее... | |
| struct | spi_config_internal_t |
| Внутренняя структура конфигурации модуля SPI. Подробнее... | |
| struct | spi_handle |
| SPI структура дескриптора для работы по прерыванию Подробнее... | |
Макросы | |
| #define | HAL_SPI_DRIVER_VERSION (MAKE_VERSION(1, 1, 0)) |
| Версия драйвера SPI. | |
| #define | SPI_DUMMYDATA (0xA5U) |
| SPI фиктивные данные для передачи по умолчанию. | |
| #define | SPI_RETRY_TIMES 0U |
Определения типов | |
| typedef struct spi_handle | spi_master_handle_t |
| Дескриптор Master SPI для работы по прерыванию | |
| typedef struct spi_handle | spi_slave_handle_t |
| Дескриптор Slave SPI для работы по прерыванию | |
| typedef void(* | spi_master_callback_t) (SPI_Type *base, spi_master_handle_t *handle, uint32_t status, void *user_data) |
| Прототип пользовательской функции обратного вызова Master SPI для вызова по окончанию обмена | |
| typedef void(* | spi_slave_callback_t) (SPI_Type *base, spi_slave_handle_t *handle, uint32_t status, void *user_data) |
| Прототип пользовательской функции обратного вызова Slave SPI для вызова по окончанию обмена | |
Перечисления | |
| enum | spi_status |
| Статусы возврата из функций для драйвера SPI. Подробнее... | |
| enum | spi_shift_direction_t |
| Формат передачи данных (MSB или LSB) Подробнее... | |
| enum | spi_txfifo_watermark_t |
| Триггер уровня заполнения TxFIFO. Подробнее... | |
| enum | spi_rxfifo_watermark_t |
| Триггер уровня заполнения RxFIFO. Подробнее... | |
| enum | spi_frame_width_t |
| Размер кадра данных в 32-х битном режиме передачи данных (CTRLR0.DFS_32) Подробнее... | |
| enum | spi_frame_format_t |
| Формат кадра передачи данных Подробнее... | |
| enum | spi_status_flags |
| SPI флаги статусов Подробнее... | |
| enum | spi_mode_t |
| Режим передачи (CTRLR0.TMOD) Подробнее... | |
| enum | spi_trans_status |
| Состояния приемо-передачи SPI. Подробнее... | |
| enum | spi_interrupt_enable |
| Источники прерываний SPI. Подробнее... | |
National Semiconductor Microwire | |
| enum | microwire_ctrlword_len_t |
| Выбор длины управляющего слова для формата кадра передачи данных National Semiconductor Micorwire. Подробнее... | |
| enum | microwire_busy_ready_check_t |
| Включить/отключить проверку busy/ready флага (регистр SR) для формата кадра передачи данных National Semiconductor Microwire. Подробнее... | |
| enum | microwire_tx_rx_t |
| Направление передачи слова данных для формата кадра передачи данных National Semiconductor Microwire. Подробнее... | |
| enum | microwire_single_serial_t |
| Выбор типа передачи (одиночная или последовательная) для формата кадра передачи данных National Semiconductor Microwire. Подробнее... | |
Motorola SPI | |
| enum | spi_motorola_clk_pol_t |
| Выбор полярности тактового сигнала при отсутствия передаваемых данных в режиме Master для формата кадра передачи данных Motorola SPI. Подробнее... | |
| enum | spi_motorola_cap_data_t |
| Выбор фронта для захвата данных для формата кадра передачи данных Motorola SPI. Подробнее... | |
Функции | |
| uint8_t | SPI_GetInstance (SPI_Type *base) |
| Получение индекса модуля SPI. | |
Инициализация и деинициализация | |
| void | SPI_MasterGetDefaultConfig (spi_config_t *config) |
| Инициализация конфигурации SPI значениями по умолчанию | |
| enum spi_status | SPI_MasterInit (SPI_Type *base, const spi_config_t *config, uint32_t src_clock_hz) |
| Инициализация SPI модуля как Master с заданной конфигурацией | |
| void | SPI_SlaveGetDefaultConfig (spi_config_t *config) |
| Заполнение структуры конфигурации SPI Slave-устройства значениями по умолчанию | |
| enum spi_status | SPI_SlaveInit (SPI_Type *base, const spi_config_t *config) |
| Инициализация SPI заданной конфигурацией | |
| void | SPI_Deinit (SPI_Type *base) |
| Деинициализация SPI. | |
| static void | SPI_Enable (SPI_Type *base, bool enable) |
| Включение или отключение модуль SPI Master или Slave. | |
| static bool | SPI_IsEnable (SPI_Type *base) |
| Получение статуса модуля SPI включено/выключено | |
| static void | SPI_Reset (SPI_Type *base) |
| Останов всех операций SPI. | |
Статусы | |
| static uint32_t | SPI_GetStatusFlags (SPI_Type *base) |
| Получение флага состояния SPI. | |
Прерывания | |
| static void | SPI_EnableInterrupts (SPI_Type *base, uint32_t irqs) |
| Включение прерываний SPI. | |
| static void | SPI_DisableInterrupts (SPI_Type *base, uint32_t irqs) |
| Отключение прерываний SPI. | |
| static uint32_t | SPI_CurrentStatusInterrupts (SPI_Type *base) |
| Получение статуса прерываний | |
| static void | SPI_TakeDownInterrupts (SPI_Type *base, uint32_t irqs) |
| Сброс флагов прерывания | |
DMA управление | |
| void | SPI_EnableTxDMA (SPI_Type *base, bool enable) |
| Включение или отключение запроса DMA от SPI TxFIFO. | |
| void | SPI_EnableRxDMA (SPI_Type *base, bool enable) |
| Включение или отключение запроса DMA от SPI RxFIFO. | |
Операции на шине SPI | |
| spi_config_internal_t * | SPI_GetConfig (SPI_Type *base) |
| Получение внутренней конфигурации | |
| enum spi_status | SPI_MasterSetBaud (SPI_Type *base, uint32_t baudrate_bps, uint32_t src_clock_hz) |
| Установка скорости передачи для SPI Master. | |
| void | SPI_WriteData (SPI_Type *base, uint32_t data) |
| Запись данных в регистр данных SPI. | |
| uint32_t | SPI_ReadData (SPI_Type *base) |
| Получение данных из регистра данных SPI. | |
| void | SPI_SetDummyData (SPI_Type *base, uint8_t dummy_data) |
| Запись фиктивных данных для передачи | |
Приемо-передача | |
| enum spi_status | SPI_MasterTransferCreateHandle (SPI_Type *base, spi_master_handle_t *handle, spi_master_callback_t callback, void *user_data) |
| Инициализация дескриптора SPI Master. | |
| enum spi_status | SPI_MasterTransferBlocking (SPI_Type *base, spi_transfer_t *xfer) |
| Блокирующая дуплексная передача данных (с ожиданием завершения операции) | |
| enum spi_status | SPI_MasterTransferNonBlocking (SPI_Type *base, spi_master_handle_t *handle, spi_transfer_t *xfer) |
| Неблокирующий SPI обмен по прерыванию | |
| enum spi_status | SPI_MasterHalfDuplexTransferBlocking (SPI_Type *base, spi_half_duplex_transfer_t *xfer) |
| Блокирующая полудуплексная передача данных (с ожиданием завершения операции) | |
| status_t | SPI_MasterHalfDuplexTransferNonBlocking (SPI_Type *base, spi_master_handle_t *handle, spi_half_duplex_transfer_t *xfer) |
| Выполнение неблокирующего SPI обмена по прерыванию | |
| status_t | SPI_MasterTransferGetByte (spi_master_handle_t *handle, size_t *count) |
| Получение количества переданных и принятых байт | |
| status_t | SPI_MasterTransferGetRemainingByte (spi_master_handle_t *handle, size_t *count) |
| Получение количества оставшихся байт для передачи и приема | |
| status_t | SPI_MasterTransferGetTotalByte (spi_master_handle_t *handle, size_t *count) |
| Получение общего количества байт на передачу и прием | |
| void | SPI_MasterTransferAbort (SPI_Type *base, spi_master_handle_t *handle) |
| Останов передачи для мастер режима | |
| void | SPI_MasterTransferHandleIRQ (SPI_Type *base, spi_master_handle_t *handle) |
| static status_t | SPI_SlaveTransferCreateHandle (SPI_Type *base, spi_slave_handle_t *handle, spi_slave_callback_t callback, void *userData) |
| Инициализация slave SPI дескриптор | |
| static status_t | SPI_SlaveTransferNonBlocking (SPI_Type *base, spi_slave_handle_t *handle, spi_transfer_t *xfer) |
| Неблокирующая дуплексная передача данных (без ожидания завершения операции) | |
| static status_t | SPI_SlaveHalfDuplexTransferNonBlocking (SPI_Type *base, spi_slave_handle_t *handle, spi_half_duplex_transfer_t *xfer) |
| static status_t | SPI_SlaveTransferGetByte (spi_slave_handle_t *handle, size_t *count) |
| Получение количества байт для обмена | |
| static void | SPI_SlaveTransferAbort (SPI_Type *base, spi_slave_handle_t *handle) |
| Останов передачи для режима Slave по прерыванию. | |
| static void | SPI_SlaveTransferHandleIRQ (SPI_Type *base, spi_slave_handle_t *handle) |
| Обработчик прерываний для SPI. | |
Интерфейс драйвера модуля SPI.