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_tSPI_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.