Описание библиотеки микросхемы 5023ВС016 процессора "Спутник"
Структуры данных | Макросы | Перечисления | Функции
Файл spi.h

Этот файл содержит структуры, макросы и функции необходимые для взаимодействия с интерфейсом SPI. Подробнее...

#include "types.h"
#include "system.h"

См. исходные тексты.

Структуры данных

struct  SPI_T
 Структура для доступа к регистрам SPI. Подробнее...
 
struct  SPI_CONFIG_T
 Структура настройки SPI. Подробнее...
 
struct  SPI_DATA_SETUP_T
 Структура для работы с буфером SPI. Подробнее...
 

Макросы

#define SPI_CR0_DSS(x)   ((uint32_t)((x) & 0x0F))
 Макросы и типы для регистра CR0. Подробнее...
 
#define SPI_CR0_SCR(x)   ((uint32_t)((x & 0xFF) << 8))
 
#define SPI_CR1_LBM_EN   ((uint32_t)(1 << 0))
 Макросы и типы для регистра CR1. Подробнее...
 
#define SPI_CR1_SSE_EN   ((uint32_t)(1 << 1))
 
#define SPI_CR1_SOD_DIS   ((uint32_t)(1 << 3))
 
#define SPI_CR1_BITMASK   ((uint32_t)(0x0F))
 
#define SPI_DR_DATA(x)   ((uint32_t)((x) & 0xFFFF))
 Макросы для регистра DR. Подробнее...
 
#define SPI_CPSR_CPSDVSR(x)   (x & 0xFF)
 Макросы для регистра CPSR. Подробнее...
 
#define SPI_Enable(gl_spi_t)   (((SPI_T *)gl_spi_t)->CR1 |= SPI_CR1_SSE_EN)
 
#define SPI_Disable(gl_spi_t)   (((SPI_T *)gl_spi_t)->CR1 &= (~SPI_CR1_SSE_EN) & SPI_CR1_BITMASK)
 
#define SPI_LoopBackEnable(gl_spi_t)   (((SPI_T *)gl_spi_t)->CR1 |= SPI_CR1_LBM_EN)
 
#define SPI_DMA_Enable(gl_spi_t)   (((SPI_T *)gl_spi_t)->DMACR |= SPI_DMACR_BITMASK)
 
#define SPI_DMA_Disable(gl_spi_t)   (((SPI_T *)gl_spi_t)->DMACR &= ~SPI_DMACR_BITMASK)
 
#define SPI_TXInt_Enable(gl_spi_t)   (((SPI_T *)gl_spi_t)->IMSC |= SPI_IMSC_TXIM)
 
#define SPI_TXInt_Disable(gl_spi_t)   (((SPI_T *)gl_spi_t)->IMSC &= (~SPI_IMSC_TXIM) & SPI_IMSC_BITMASK)
 
#define SPI_RXInt_Enable(gl_spi_t)   (((SPI_T *)gl_spi_t)->IMSC |= SPI_IMSC_RXIM)
 
#define SPI_RXInt_Disable(gl_spi_t)   (((SPI_T *)gl_spi_t)->IMSC &= (~SPI_IMSC_RXIM) & SPI_IMSC_BITMASK)
 
#define SPI_ClearIntPending(gl_spi_t, gl_spi_intclr)   (((SPI_T *)gl_spi_t)->ICR = (SPI_INTCLEAR_T)gl_spi_intclr)
 

Перечисления

enum  SPI_BITS_T {
  SPI_BITS_4 = ((uint32_t)(3 << 0)), SPI_BITS_5 = ((uint32_t)(4 << 0)), SPI_BITS_6 = ((uint32_t)(5 << 0)), SPI_BITS_7 = ((uint32_t)(6 << 0)),
  SPI_BITS_8 = ((uint32_t)(7 << 0)), SPI_BITS_9 = ((uint32_t)(8 << 0)), SPI_BITS_10 = ((uint32_t)(9 << 0)), SPI_BITS_11 = ((uint32_t)(10 << 0)),
  SPI_BITS_12 = ((uint32_t)(11 << 0)), SPI_BITS_13 = ((uint32_t)(12 << 0)), SPI_BITS_14 = ((uint32_t)(13 << 0)), SPI_BITS_15 = ((uint32_t)(14 << 0)),
  SPI_BITS_16 = ((uint32_t)(15 << 0))
}
 
enum  SPI_FRAME_FORMAT_T { SPI_FRF_SPI = ((uint32_t)(0 << 4)), SPI_FRF_TI = ((uint32_t)(1 << 4)), SPI_FRF_MICROWIRE = ((uint32_t)(2 << 4)) }
 
enum  SPI_CLOCK_MODE_T {
  SPI_CLOCK_SPH0_SPO0 = ((uint32_t)(0 << 6)), SPI_CLOCK_SPH0_SPO1 = ((uint32_t)(1 << 6)), SPI_CLOCK_SPH1_SPO0 = ((uint32_t)(2 << 6)), SPI_CLOCK_SPH1_SPO1 = ((uint32_t)(3 << 6)),
  SPI_CLOCK_MODE0 = SPI_CLOCK_SPH0_SPO0, SPI_CLOCK_MODE1 = SPI_CLOCK_SPH0_SPO1, SPI_CLOCK_MODE2 = SPI_CLOCK_SPH1_SPO0, SPI_CLOCK_MODE3 = SPI_CLOCK_SPH1_SPO1
}
 
enum  SPI_MODE_T { SPI_MODE_MS_MASTER = ((uint32_t)(0 << 2)), SPI_MODE_MS_SLAVE = ((uint32_t)(1 << 2)) }
 
enum  SPI_STATUS_T {
  SPI_SR_TFE = ((uint32_t)(1 << 0)), SPI_SR_TNF = ((uint32_t)(1 << 1)), SPI_SR_RNE = ((uint32_t)(1 << 2)), SPI_SR_RFF = ((uint32_t)(1 << 3)),
  SPI_SR_BSY = ((uint32_t)(1 << 4))
}
 Тип для регистра SR. Подробнее...
 
enum  SPI_INTMASK_T {
  SPI_IMSC_RORIM = ((uint32_t)(1 << 0)), SPI_IMSC_RTIM = ((uint32_t)(1 << 1)), SPI_IMSC_RXIM = ((uint32_t)(1 << 2)), SPI_IMSC_TXIM = ((uint32_t)(1 << 3)),
  SPI_IMSC_BITMASK = ((uint32_t)(0xF << 0))
}
 Тип для регистра IMSC. Подробнее...
 
enum  SPI_RAWINTSTATUS_T { SPI_RIS_RORRIS = ((uint32_t)(1 << 0)), SPI_RIS_RTRIS = ((uint32_t)(1 << 1)), SPI_RIS_RXRIS = ((uint32_t)(1 << 2)), SPI_RIS_TXRIS = ((uint32_t)(1 << 3)) }
 Тип для регистра RIS. Подробнее...
 
enum  SPI_MASKINTSTATUS_T { SPI_MIS_RORMIS = ((uint32_t)(1 << 0)), SPI_MIS_RTMIS = ((uint32_t)(1 << 1)), SPI_MIS_RXMIS = ((uint32_t)(1 << 2)), SPI_MIS_TXMIS = ((uint32_t)(1 << 3)) }
 Тип для регистра MIS. Подробнее...
 
enum  SPI_INTCLEAR_T { SPI_ICR_RORIC = ((uint32_t)(1 << 0)), SPI_ICR_RTIC = ((uint32_t)(1 << 1)), SPI_ICR_BITMASK = ((uint32_t)(3 << 0)) }
 Тип для регистра ICR. Подробнее...
 
enum  SPI_DMACR_T { SPI_DMACR_RXDMAE = ((uint32_t)(1 << 0)), SPI_DMACR_TXDMAE = ((uint32_t)(1 << 1)), SPI_DMACR_BITMASK = ((uint32_t)(3 << 0)) }
 Тип для регистра DMACR. Подробнее...
 

Функции

void SPI_DeInit (SPI_T *pSPI)
 Сброс SPI. Подробнее...
 
void SPI_Init (SPI_T *pSPI)
 Инициализация SPI. Подробнее...
 
CTRL_T SPI_GetCtrlNum (SPI_T *pSPI)
 Возвращает номер модуля для использования в функциях включения/выключения SPI. Подробнее...
 
void SPI_SetFormat (SPI_T *pSPI, uint32_t pbits, uint32_t pframeFormat, uint32_t pclockMode)
 Установка формата информационного кадра Подробнее...
 
void SPI_Set_Mode (SPI_T *pSPI, uint32_t pmode)
 Установка режима работы (ведущий или ведомый). Подробнее...
 
void SPI_SetClockRate (SPI_T *pSPI, uint32_t clk_rate, uint32_t prescale)
 Установка скорости последовательного обмена: FSSPCLKOUT=FSSPCLK/(CPSDVR*(1+SCR)) Подробнее...
 
void SPI_SetBitRate (SPI_T *pSPI, uint32_t bitRate)
 Установка частоты тактового сигнала для интерфейса SPI. Подробнее...
 
uint8_t SPI_GetDataSize (SPI_T *pSPI)
 Получение числа бит в одном слове данных. Подробнее...
 
void SPI_SendFrame (SPI_T *pSPI, uint16_t tx_data)
 Отправка слова данных по интерфейсу SPI. Подробнее...
 
uint16_t SPI_ReceiveFrame (SPI_T *pSPI)
 Прием слова данных по интерфейсу SPI. Подробнее...
 
void SPI_Write1BFifo (SPI_T *pSPI, SPI_DATA_SETUP_T *xf_setup)
 Запись одного байта в буфер SPI. Подробнее...
 
void SPI_Read1BFifo (SPI_T *pSPI, SPI_DATA_SETUP_T *xf_setup)
 Чтение одного байта из буфера SPI. Подробнее...
 
void SPI_Write2BFifo (SPI_T *pSPI, SPI_DATA_SETUP_T *xf_setup)
 Запись двух байт в буфер SPI. Подробнее...
 
void SPI_Read2BFifo (SPI_T *pSPI, SPI_DATA_SETUP_T *xf_setup)
 Чтение двух байт из буфера SPI. Подробнее...
 
uint32_t SPI_WriteFrames_Blocking (SPI_T *pSPI, uint8_t *buffer, uint32_t buffer_len)
 Запись методом постоянного опроса. Подробнее...
 
uint32_t SPI_ReadFrames_Blocking (SPI_T *pSPI, uint8_t *buffer, uint32_t buffer_len)
 Чтение методом постоянного опроса. Подробнее...
 
Status SPI_Int_RWFrames8Bits (SPI_T *pSPI, SPI_DATA_SETUP_T *xf_setup)
 Чтение/запись 8 бит данных при помощи прерываний. Подробнее...
 
Status SPI_Int_RWFrames16Bits (SPI_T *pSPI, SPI_DATA_SETUP_T *xf_setup)
 Чтение/запись 16 бит данных при помощи прерываний. Подробнее...
 
void SPI_Int_FlushData (SPI_T *pSPI)
 Очистка буфера приемника и сброс флагов прерываний. Подробнее...
 
FlagStatus SPI_GetStatus (SPI_T *pSPI, SPI_STATUS_T pStat)
 Получение текущего статуса контроллера SPI. Подробнее...
 
IntStatus SPI_GetIntStatus (SPI_T *pSPI, SPI_MASKINTSTATUS_T pMaskInt)
 Получение статуса маскированного прерывания. Подробнее...
 
IntStatus SPI_GetRawIntStatus (SPI_T *pSPI, SPI_RAWINTSTATUS_T pRawInt)
 Получение статуса прерывания. Подробнее...
 

Подробное описание

Этот файл содержит структуры, макросы и функции необходимые для взаимодействия с интерфейсом SPI.

Copyright(C) НПП Цифровые решения, 2017 Copyright(C) Команда разработчиков НПП Цифровые решения Все права защищены.

Программное обеспечение, описанное в этом файле, предназначено только для демонстрационных целей, и предоставляет программистам информацию о продукции организации "Цифровые решения". Это программное обеспечение поставляется "КАК ЕСТЬ" без каких-либо гарантий, "Цифровые решения" отказываются от любых гарантий, фактических или подразумеваемых, включая все подразумеваемые гарантии товарной пригодности, пригодности для конкретной цели и сохранения прав интеллектуальной собственности. Органицация "Цифровые решения" не несет никакой ответственности за использование программного обеспечения, не предоставляет лицензий или прав на патент, авторское право, или любые другие права интеллектуальной собственности, на какие-либо продукты. Организация "Цифровые решения" оставляет за собой право вносить изменения в программное обеспечение без уведомления. Организация "Цифровые решения" также не дает никаких заверений или гарантий, что это программное приложение подойдет для использования без дальнейшего тестирования или модификаций.

Разрешение на использование, копирование, изменение и распространение этого программного обеспечения и документации предоставляется согласно условиям "Цифровых решений" и соответствующих авторских прав своей лицензии без оплаты, при условии, что это программное обеспечнение используется совместно с микроконтроллерами организации "Цифровые решения". Эти права должны распространяться во всех копиях этого кода.

См. определение в файле spi.h

Макросы

§ SPI_ClearIntPending

#define SPI_ClearIntPending (   gl_spi_t,
  gl_spi_intclr 
)    (((SPI_T *)gl_spi_t)->ICR = (SPI_INTCLEAR_T)gl_spi_intclr)

Сброс флагов прерываний Тип прерывания для сброса, принимает следующие значения: SPI_ICR_RORIC SPI_ICR_RTIC

См. определение в файле spi.h строка 237

§ SPI_CPSR_CPSDVSR

#define SPI_CPSR_CPSDVSR (   x)    (x & 0xFF)

Макросы для регистра CPSR.

коэффициент деления тактовой частоты

См. определение в файле spi.h строка 127

§ SPI_CR0_DSS

#define SPI_CR0_DSS (   x)    ((uint32_t)((x) & 0x0F))

Макросы и типы для регистра CR0.

размер слова данных 4-16 бита

См. определение в файле spi.h строка 55

§ SPI_CR0_SCR

#define SPI_CR0_SCR (   x)    ((uint32_t)((x & 0xFF) << 8))

cкорость последовательного обмена

См. определение в файле spi.h строка 56

§ SPI_CR1_BITMASK

#define SPI_CR1_BITMASK   ((uint32_t)(0x0F))

См. определение в файле spi.h строка 99

§ SPI_CR1_LBM_EN

#define SPI_CR1_LBM_EN   ((uint32_t)(1 << 0))

Макросы и типы для регистра CR1.

включение режима loopback

См. определение в файле spi.h строка 96

§ SPI_CR1_SOD_DIS

#define SPI_CR1_SOD_DIS   ((uint32_t)(1 << 3))

запрет выходных линий в режиме ведомого устройства

См. определение в файле spi.h строка 98

§ SPI_CR1_SSE_EN

#define SPI_CR1_SSE_EN   ((uint32_t)(1 << 1))

разрешение работы приемопередатчика

См. определение в файле spi.h строка 97

§ SPI_Disable

#define SPI_Disable (   gl_spi_t)    (((SPI_T *)gl_spi_t)->CR1 &= (~SPI_CR1_SSE_EN) & SPI_CR1_BITMASK)

Запрещение работы приемопередатчика

См. определение в файле spi.h строка 209

§ SPI_DMA_Disable

#define SPI_DMA_Disable (   gl_spi_t)    (((SPI_T *)gl_spi_t)->DMACR &= ~SPI_DMACR_BITMASK)

Выключение DMA для SPI

См. определение в файле spi.h строка 218

§ SPI_DMA_Enable

#define SPI_DMA_Enable (   gl_spi_t)    (((SPI_T *)gl_spi_t)->DMACR |= SPI_DMACR_BITMASK)

Включение DMA для SPI

См. определение в файле spi.h строка 215

§ SPI_DR_DATA

#define SPI_DR_DATA (   x)    ((uint32_t)((x) & 0xFFFF))

Макросы для регистра DR.

принимаемые/передаваемые данные

См. определение в файле spi.h строка 110

§ SPI_Enable

#define SPI_Enable (   gl_spi_t)    (((SPI_T *)gl_spi_t)->CR1 |= SPI_CR1_SSE_EN)

Разрешение работы приемопередатчика

См. определение в файле spi.h строка 206

§ SPI_LoopBackEnable

#define SPI_LoopBackEnable (   gl_spi_t)    (((SPI_T *)gl_spi_t)->CR1 |= SPI_CR1_LBM_EN)

Включение режима loopback

См. определение в файле spi.h строка 212

§ SPI_RXInt_Disable

#define SPI_RXInt_Disable (   gl_spi_t)    (((SPI_T *)gl_spi_t)->IMSC &= (~SPI_IMSC_RXIM) & SPI_IMSC_BITMASK)

Выключение прерывания по заполнению на 50% и более буфера FIFO приемника

См. определение в файле spi.h строка 230

§ SPI_RXInt_Enable

#define SPI_RXInt_Enable (   gl_spi_t)    (((SPI_T *)gl_spi_t)->IMSC |= SPI_IMSC_RXIM)

Включение прерывания по заполнению на 50% и более буфера FIFO приемника

См. определение в файле spi.h строка 227

§ SPI_TXInt_Disable

#define SPI_TXInt_Disable (   gl_spi_t)    (((SPI_T *)gl_spi_t)->IMSC &= (~SPI_IMSC_TXIM) & SPI_IMSC_BITMASK)

Выключение прерывания по заполнению на 50% и менее буфера FIFO передатчика

См. определение в файле spi.h строка 224

§ SPI_TXInt_Enable

#define SPI_TXInt_Enable (   gl_spi_t)    (((SPI_T *)gl_spi_t)->IMSC |= SPI_IMSC_TXIM)

Включение прерывания по заполнению на 50% и менее буфера FIFO передатчика

См. определение в файле spi.h строка 221

Перечисления

§ SPI_BITS_T

enum SPI_BITS_T
Элементы перечислений
SPI_BITS_4 

размер слова данных 4 бита

SPI_BITS_5 

размер слова данных 5 бит

SPI_BITS_6 

размер слова данных 6 бит

SPI_BITS_7 

размер слова данных 7 бит

SPI_BITS_8 

размер слова данных 8 бит

SPI_BITS_9 

размер слова данных 9 бит

SPI_BITS_10 

размер слова данных 10 бит

SPI_BITS_11 

размер слова данных 11 бит

SPI_BITS_12 

размер слова данных 12 бит

SPI_BITS_13 

размер слова данных 13 бит

SPI_BITS_14 

размер слова данных 14 бит

SPI_BITS_15 

размер слова данных 15 бит

SPI_BITS_16 

размер слова данных 16 бит

См. определение в файле spi.h строка 58

§ SPI_CLOCK_MODE_T

Элементы перечислений
SPI_CLOCK_SPH0_SPO0 
SPI_CLOCK_SPH0_SPO1 
SPI_CLOCK_SPH1_SPO0 
SPI_CLOCK_SPH1_SPO1 
SPI_CLOCK_MODE0 
SPI_CLOCK_MODE1 
SPI_CLOCK_MODE2 
SPI_CLOCK_MODE3 

См. определение в файле spi.h строка 82

§ SPI_DMACR_T

Тип для регистра DMACR.

Элементы перечислений
SPI_DMACR_RXDMAE 

разрешение использования DMA при приеме

SPI_DMACR_TXDMAE 

разрешение использования DMA при передаче

SPI_DMACR_BITMASK 

разрешение использования DMA при приеме и передаче

См. определение в файле spi.h строка 176

§ SPI_FRAME_FORMAT_T

Элементы перечислений
SPI_FRF_SPI 

протокол SPI фирмы Motorola

SPI_FRF_TI 

протокол SPI фирмы Texas Instruments

SPI_FRF_MICROWIRE 

протокол Microwire фирмы National Semiconductor

См. определение в файле spi.h строка 75

§ SPI_INTCLEAR_T

Тип для регистра ICR.

Элементы перечислений
SPI_ICR_RORIC 

cброс прерывания по переполнению буфера приемника

SPI_ICR_RTIC 

cброс прерывания по таймауту приемника

SPI_ICR_BITMASK 

cброс всех прерываний

См. определение в файле spi.h строка 166

§ SPI_INTMASK_T

Тип для регистра IMSC.

Элементы перечислений
SPI_IMSC_RORIM 

маскирование прерывания по переполнению буфера приемника

SPI_IMSC_RTIM 

маскирование прерывания по таймауту приемника

SPI_IMSC_RXIM 

маскирование прерывания по заполнению на 50% и более буфера FIFO приемника

SPI_IMSC_TXIM 

маскирование прерывания по заполнению на 50% и менее буфера FIFO передатчика

SPI_IMSC_BITMASK 

См. определение в файле spi.h строка 132

§ SPI_MASKINTSTATUS_T

Тип для регистра MIS.

Элементы перечислений
SPI_MIS_RORMIS 

маскированное состояние прерывания по переполнению буфера приемника

SPI_MIS_RTMIS 

маскированное состояние прерывания по таймауту приемника

SPI_MIS_RXMIS 

маскированное состояние прерывания по заполнению на 50% и менее буфера FIFO приемника

SPI_MIS_TXMIS 

маскированное состояние прерывания по заполнению на 50% и менее буфера FIFO передатчика

См. определение в файле spi.h строка 155

§ SPI_MODE_T

enum SPI_MODE_T
Элементы перечислений
SPI_MODE_MS_MASTER 

режим работы - ведущий

SPI_MODE_MS_SLAVE 

режим работы - ведомый

См. определение в файле spi.h строка 101

§ SPI_RAWINTSTATUS_T

Тип для регистра RIS.

Элементы перечислений
SPI_RIS_RORRIS 

состояние прерывания по переполнению буфера приемника без маски

SPI_RIS_RTRIS 

состояние прерывания по таймауту приемника без маски

SPI_RIS_RXRIS 

состояние прерывания по заполнению на 50% и менее буфера FIFO приемника без маски

SPI_RIS_TXRIS 

состояние прерывания по заполнению на 50% и менее буфера FIFO передатчика без маски

См. определение в файле spi.h строка 144

§ SPI_STATUS_T

Тип для регистра SR.

Элементы перечислений
SPI_SR_TFE 

маска для чтения состояния буфера FIFO передатчика (1 - пуст)

SPI_SR_TNF 

маска для чтения состояния буфера FIFO передатчика (1 - не заполнен)

SPI_SR_RNE 

маска для чтения состояния буфера FIFO приемника (1 - не пуст)

SPI_SR_RFF 

маска для чтения состояния буфера FIFO приемника (1 - заполнен)

SPI_SR_BSY 

маска для чтения состояния модуля SPI (1 - в настоящее время передает и/или принимает данные, либо буфер FIFO передатчика не пуст)

См. определение в файле spi.h строка 115

Функции

§ SPI_DeInit()

void SPI_DeInit ( SPI_T pSPI)

Сброс SPI.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
Возвращаемые значения
None.

См. определение в файле spi.c строка 41

§ SPI_GetCtrlNum()

CTRL_T SPI_GetCtrlNum ( SPI_T pSPI)

Возвращает номер модуля для использования в функциях включения/выключения SPI.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
Возвращаемые значения
CtrlSPIномер модуля.

См. определение в файле spi.c строка 66

§ SPI_GetDataSize()

uint8_t SPI_GetDataSize ( SPI_T pSPI)
inline

Получение числа бит в одном слове данных.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
Возвращаемые значения
Количествобит в одном слове данных минус один

См. определение в файле spi.c строка 165

§ SPI_GetIntStatus()

IntStatus SPI_GetIntStatus ( SPI_T pSPI,
SPI_MASKINTSTATUS_T  pMaskInt 
)

Получение статуса маскированного прерывания.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
pMaskIntтип маскированного прерывания. Параметр pMaskInt может принимать значения:
  • SPI_MIS_RORMIS: состояние маскированного прерывания SSPRORINTR
  • SPI_MIS_RTMIS: состояние маскированного прерывания SSPRTINTR
  • SPI_MIS_RXMIS: состояние маскированного прерывания SSPRXINTR
  • SPI_MIS_TXMIS: состояние маскированного прерывания SSPTXINTR
Возвращаемые значения
SETor RESET, cтатус прерывания.

См. определение в файле spi.c строка 594

§ SPI_GetRawIntStatus()

IntStatus SPI_GetRawIntStatus ( SPI_T pSPI,
SPI_RAWINTSTATUS_T  pRawInt 
)

Получение статуса прерывания.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
pRawIntтип прерывания. Параметр pMaskInt может принимать значения:
  • SPI_MIS_RORRIS: состояние до маскирования прерывания SSPRORINTR
  • SPI_MIS_RTRIS: состояние до маскирования прерывания SSPRTINTR
  • SPI_MIS_RXRIS: состояние до маскирования прерывания SSPRXINTR
  • SPI_MIS_TXRIS: состояние до маскирования прерывания SSPTXINTR
Возвращаемые значения
SETor RESET, cтатус прерывания.

См. определение в файле spi.c строка 610

§ SPI_GetStatus()

FlagStatus SPI_GetStatus ( SPI_T pSPI,
SPI_STATUS_T  pStat 
)

Получение текущего статуса контроллера SPI.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
pStatтип статуса. Параметр pStat может принимать значения:
  • SPI_SR_TFE: буфер FIFO передатчика пуст
  • SPI_SR_TNF: буфер FIFO передатчика не заполнен
  • SPI_SR_RNE: буфер FIFO приемника не пуст
  • SPI_SR_RFF: буфер FIFO приемника заполнен
  • SPI_SR_BSY: флаг активности передачи или приема
Возвращаемые значения
SETor RESET, cтатус контроллера SPI.

См. определение в файле spi.c строка 578

§ SPI_Init()

void SPI_Init ( SPI_T pSPI)

Инициализация SPI.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
Возвращаемые значения
None.

См. определение в файле spi.c строка 54

§ SPI_Int_FlushData()

void SPI_Int_FlushData ( SPI_T pSPI)

Очистка буфера приемника и сброс флагов прерываний.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
Возвращаемые значения
None.

См. определение в файле spi.c строка 549

§ SPI_Int_RWFrames16Bits()

Status SPI_Int_RWFrames16Bits ( SPI_T pSPI,
SPI_DATA_SETUP_T xf_setup 
)

Чтение/запись 16 бит данных при помощи прерываний.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
xf_setupуказатель на структуру для работы с буфером SPI.
Возвращаемые значения
Cтатусоперации.

См. определение в файле spi.c строка 516

§ SPI_Int_RWFrames8Bits()

Status SPI_Int_RWFrames8Bits ( SPI_T pSPI,
SPI_DATA_SETUP_T xf_setup 
)

Чтение/запись 8 бит данных при помощи прерываний.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
xf_setupуказатель на структуру для работы с буфером SPI.
Возвращаемые значения
Cтатусоперации.

См. определение в файле spi.c строка 482

§ SPI_Read1BFifo()

void SPI_Read1BFifo ( SPI_T pSPI,
SPI_DATA_SETUP_T xf_setup 
)

Чтение одного байта из буфера SPI.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
xf_setupуказатель на структуру для работы с буфером SPI.
Возвращаемые значения
None.

См. определение в файле spi.c строка 217

§ SPI_Read2BFifo()

void SPI_Read2BFifo ( SPI_T pSPI,
SPI_DATA_SETUP_T xf_setup 
)

Чтение двух байт из буфера SPI.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
xf_setupуказатель на структуру для работы с буфером SPI.
Возвращаемые значения
None.

См. определение в файле spi.c строка 256

§ SPI_ReadFrames_Blocking()

uint32_t SPI_ReadFrames_Blocking ( SPI_T pSPI,
uint8_t *  buffer,
uint32_t  buffer_len 
)

Чтение методом постоянного опроса.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
bufferуказатель на принимаемые данные.
buffer_lenразмер принимаемых данных.
Возвращаемые значения
rx_cnt- количество принятых данных.

См. определение в файле spi.c строка 411

§ SPI_ReceiveFrame()

uint16_t SPI_ReceiveFrame ( SPI_T pSPI)

Прием слова данных по интерфейсу SPI.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
Возвращаемые значения
Словоданных.

См. определение в файле spi.c строка 186

§ SPI_SendFrame()

void SPI_SendFrame ( SPI_T pSPI,
uint16_t  tx_data 
)

Отправка слова данных по интерфейсу SPI.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
tx_dataданные для отправки
Возвращаемые значения
None.

См. определение в файле spi.c строка 176

§ SPI_Set_Mode()

void SPI_Set_Mode ( SPI_T pSPI,
uint32_t  pmode 
)

Установка режима работы (ведущий или ведомый).

Аргументы
pSPIуказатель на структуру с регистрами SPI.
pmodeрежим работы, принимает следующие значения: Параметр pmode может принимать значения:
  • SPI_MODE_MASTER: режим работы - ведущий
  • SPI_MODE_SLAVE: режим работы - ведомый
Возвращаемые значения
None.

См. определение в файле spi.c строка 111

§ SPI_SetBitRate()

void SPI_SetBitRate ( SPI_T pSPI,
uint32_t  bitRate 
)

Установка частоты тактового сигнала для интерфейса SPI.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
bitRateчастота обмена.
Возвращаемые значения
None.

См. определение в файле spi.c строка 137

§ SPI_SetClockRate()

void SPI_SetClockRate ( SPI_T pSPI,
uint32_t  clk_rate,
uint32_t  prescale 
)

Установка скорости последовательного обмена: FSSPCLKOUT=FSSPCLK/(CPSDVR*(1+SCR))

Аргументы
pSPIуказатель на структуру с регистрами SPI.
clk_rateSCR - делитель частоты (1..256).
prescaleCPSDVR - четный коэффициент (2..254).
Возвращаемые значения
None.

См. определение в файле spi.c строка 123

§ SPI_SetFormat()

void SPI_SetFormat ( SPI_T pSPI,
uint32_t  pbits,
uint32_t  pframeFormat,
uint32_t  pclockMode 
)

Установка формата информационного кадра

Аргументы
pSPIуказатель на структуру с регистрами SPI.
pbitsразмер слова данных, может быть SPI_BITS_4..SPI_BITS_16.
pframeFormatформат информационного кадра. Параметр pframeFormat может принимать значения:
  • SPI_FRF_SPI: протокол SPI фирмы Motorola
  • SPI_FRF_TI: протокол SSI фирмы Texas Instruments
  • SPI_FRF_MICROWIRE: протокол Microwire фирмы National Semiconductor
pclockModeполярность и фаза тактового сигнала. Используется только в режиме обмена SPI фирмы Motorola Параметр pclockMode может принимать значения:
  • SPI_CLOCK_MODE0: сигнал синхронизации (CPOL) - низкий уровень, выборка данных (CPHA) - передний фронт сигнала синхронизации
  • SPI_CLOCK_MODE1: сигнал синхронизации (CPOL) - низкий уровень, выборка данных (CPHA) - задний фронт сигнала синхронизации
  • SPI_CLOCK_MODE1: сигнал синхронизации (CPOL) - высокий уровень, выборка данных (CPHA) - передний фронт сигнала синхронизации
  • SPI_CLOCK_MODE1: сигнал синхронизации (CPOL) - высокий уровень, выборка данных (CPHA) - задний фронт сигнала синхронизации
Возвращаемые значения
None.

См. определение в файле spi.c строка 97

§ SPI_Write1BFifo()

void SPI_Write1BFifo ( SPI_T pSPI,
SPI_DATA_SETUP_T xf_setup 
)

Запись одного байта в буфер SPI.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
xf_setupуказатель на структуру для работы с буфером SPI.
Возвращаемые значения
None.

См. определение в файле spi.c строка 197

§ SPI_Write2BFifo()

void SPI_Write2BFifo ( SPI_T pSPI,
SPI_DATA_SETUP_T xf_setup 
)

Запись двух байт в буфер SPI.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
xf_setupуказатель на структуру для работы с буфером SPI.
Возвращаемые значения
None.

См. определение в файле spi.c строка 237

§ SPI_WriteFrames_Blocking()

uint32_t SPI_WriteFrames_Blocking ( SPI_T pSPI,
uint8_t *  buffer,
uint32_t  buffer_len 
)

Запись методом постоянного опроса.

Аргументы
pSPIуказатель на структуру с регистрами SPI.
bufferуказатель на передаваемые данные.
buffer_lenразмер передаваемых данных.
Возвращаемые значения
tx_cnt- количество переданных данных.

См. определение в файле spi.c строка 339