55 #define SPI_CR0_DSS(x) ((uint32_t)((x) & 0x0F)) 56 #define SPI_CR0_SCR(x) ((uint32_t)((x & 0xFF) << 8)) 96 #define SPI_CR1_LBM_EN ((uint32_t)(1 << 0)) 97 #define SPI_CR1_SSE_EN ((uint32_t)(1 << 1)) 98 #define SPI_CR1_SOD_DIS ((uint32_t)(1 << 3)) 99 #define SPI_CR1_BITMASK ((uint32_t)(0x0F)) 110 #define SPI_DR_DATA(x) ((uint32_t)((x) & 0xFFFF)) 127 #define SPI_CPSR_CPSDVSR(x) (x & 0xFF) 206 #define SPI_Enable(gl_spi_t) (((SPI_T *)gl_spi_t)->CR1 |= SPI_CR1_SSE_EN) 209 #define SPI_Disable(gl_spi_t) (((SPI_T *)gl_spi_t)->CR1 &= (~SPI_CR1_SSE_EN) & SPI_CR1_BITMASK) 212 #define SPI_LoopBackEnable(gl_spi_t) (((SPI_T *)gl_spi_t)->CR1 |= SPI_CR1_LBM_EN) 215 #define SPI_DMA_Enable(gl_spi_t) (((SPI_T *)gl_spi_t)->DMACR |= SPI_DMACR_BITMASK) 218 #define SPI_DMA_Disable(gl_spi_t) (((SPI_T *)gl_spi_t)->DMACR &= ~SPI_DMACR_BITMASK) 221 #define SPI_TXInt_Enable(gl_spi_t) (((SPI_T *)gl_spi_t)->IMSC |= SPI_IMSC_TXIM) 224 #define SPI_TXInt_Disable(gl_spi_t) (((SPI_T *)gl_spi_t)->IMSC &= (~SPI_IMSC_TXIM) & SPI_IMSC_BITMASK) 227 #define SPI_RXInt_Enable(gl_spi_t) (((SPI_T *)gl_spi_t)->IMSC |= SPI_IMSC_RXIM) 230 #define SPI_RXInt_Disable(gl_spi_t) (((SPI_T *)gl_spi_t)->IMSC &= (~SPI_IMSC_RXIM) & SPI_IMSC_BITMASK) 237 #define SPI_ClearIntPending(gl_spi_t,gl_spi_intclr) (((SPI_T *)gl_spi_t)->ICR = (SPI_INTCLEAR_T)gl_spi_intclr) 277 void SPI_SetFormat(
SPI_T *pSPI, uint32_t pbits, uint32_t pframeFormat, uint32_t pclockMode);
void SPI_DeInit(SPI_T *pSPI)
Сброс SPI.
uint16_t SPI_ReceiveFrame(SPI_T *pSPI)
Прием слова данных по интерфейсу SPI.
CTRL_T SPI_GetCtrlNum(SPI_T *pSPI)
Возвращает номер модуля для использования в функциях включения/выключения SPI.
SPI_RAWINTSTATUS_T
Тип для регистра RIS.
uint32_t SPI_WriteFrames_Blocking(SPI_T *pSPI, uint8_t *buffer, uint32_t buffer_len)
Запись методом постоянного опроса.
Этот файл содержит структуры, макросы и функции необходимые для работы с дополнительными типами...
void SPI_Write2BFifo(SPI_T *pSPI, SPI_DATA_SETUP_T *xf_setup)
Запись двух байт в буфер SPI.
SPI_CLOCK_MODE_T clockMode
enum FlagStatus IntStatus
SPI_STATUS_T
Тип для регистра SR.
Status SPI_Int_RWFrames8Bits(SPI_T *pSPI, SPI_DATA_SETUP_T *xf_setup)
Чтение/запись 8 бит данных при помощи прерываний.
void SPI_SetFormat(SPI_T *pSPI, uint32_t pbits, uint32_t pframeFormat, uint32_t pclockMode)
Установка формата информационного кадра
CTRL_T
Номера модулей в регистрах PWR_CLK_CTRL и PWR_RST_CTRL Расшифровка битовых полей для регистров PWR_CT...
IntStatus SPI_GetRawIntStatus(SPI_T *pSPI, SPI_RAWINTSTATUS_T pRawInt)
Получение статуса прерывания.
Структура для доступа к регистрам SPI.
SPI_INTCLEAR_T
Тип для регистра ICR.
FlagStatus SPI_GetStatus(SPI_T *pSPI, SPI_STATUS_T pStat)
Получение текущего статуса контроллера SPI.
FlagStatus
Тип для состояний флагов
SPI_FRAME_FORMAT_T frameFormat
uint8_t SPI_GetDataSize(SPI_T *pSPI)
Получение числа бит в одном слове данных.
Status SPI_Int_RWFrames16Bits(SPI_T *pSPI, SPI_DATA_SETUP_T *xf_setup)
Чтение/запись 16 бит данных при помощи прерываний.
void SPI_Read2BFifo(SPI_T *pSPI, SPI_DATA_SETUP_T *xf_setup)
Чтение двух байт из буфера SPI.
void SPI_Read1BFifo(SPI_T *pSPI, SPI_DATA_SETUP_T *xf_setup)
Чтение одного байта из буфера SPI.
SPI_DMACR_T
Тип для регистра DMACR.
IntStatus SPI_GetIntStatus(SPI_T *pSPI, SPI_MASKINTSTATUS_T pMaskInt)
Получение статуса маскированного прерывания.
uint32_t SPI_ReadFrames_Blocking(SPI_T *pSPI, uint8_t *buffer, uint32_t buffer_len)
Чтение методом постоянного опроса.
Структура для работы с буфером SPI.
SPI_MASKINTSTATUS_T
Тип для регистра MIS.
void SPI_SendFrame(SPI_T *pSPI, uint16_t tx_data)
Отправка слова данных по интерфейсу SPI.
Этот файл содержит структуры, макросы и функции необходимые для взаимодействия с регистрами общего на...
void SPI_Set_Mode(SPI_T *pSPI, uint32_t pmode)
Установка режима работы (ведущий или ведомый).
void SPI_SetBitRate(SPI_T *pSPI, uint32_t bitRate)
Установка частоты тактового сигнала для интерфейса SPI.
void SPI_Init(SPI_T *pSPI)
Инициализация SPI.
void SPI_SetClockRate(SPI_T *pSPI, uint32_t clk_rate, uint32_t prescale)
Установка скорости последовательного обмена: FSSPCLKOUT=FSSPCLK/(CPSDVR*(1+SCR))
void SPI_Int_FlushData(SPI_T *pSPI)
Очистка буфера приемника и сброс флагов прерываний.
Status
Тип для статуса операции
SPI_INTMASK_T
Тип для регистра IMSC.
void SPI_Write1BFifo(SPI_T *pSPI, SPI_DATA_SETUP_T *xf_setup)
Запись одного байта в буфер SPI.