| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497 |
- /*
- * Copyright (c) 2022 OpenLuat & AirM2M
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
- * the Software, and to permit persons to whom the Software is furnished to do so,
- * subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
- #ifndef __AIR105_SPI_H
- #define __AIR105_SPI_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* Includes ------------------------------------------------------------------*/
- #include "air105.h"
- #define SPI_DMACR_RDMAE_Pos (0)
- #define SPI_DMACR_RDMAE_Mask (0x01U << SPI_DMACR_RDMAE_Pos)
- #define SPI_DMACR_TDMAE_Pos (1)
- #define SPI_DMACR_TDMAE_Mask (0x01U << SPI_DMACR_TDMAE_Pos)
- /** @defgroup SPI_Exported_Types
- * @{
- */
- /**
- * @brief SPI Init structure definition
- */
- typedef struct
- {
- uint32_t SPI_Direction; /*!< Specifies the SPI unidirectional or bidirectional data mode.
- This parameter can be a value of @ref SPI_data_direction */
- uint32_t SPI_Mode; /*!< Specifies the SPI operating mode.
- This parameter can be a value of @ref SPI_mode */
- uint32_t SPI_DataSize; /*!< Specifies the SPI data size.
- This parameter can be a value of @ref SPI_data_size */
- uint32_t SPI_CPOL; /*!< Specifies the serial clock steady state.
- This parameter can be a value of @ref SPI_Clock_Polarity */
- uint32_t SPI_CPHA; /*!< Specifies the clock active edge for the bit capture.
- This parameter can be a value of @ref SPI_Clock_Phase */
- uint32_t SPI_NSS; /*!< Specifies whether the NSS signal is managed by
- hardware (NSS pin) or by software using the SSI bit.
- This parameter can be a value of @ref SPI_Slave_Select_management */
- uint32_t SPI_BaudRatePrescaler; /*!< Specifies the Baud Rate prescaler value which will be
- used to configure the transmit and receive SCK clock.
- This parameter can be a value of @ref SPI_BaudRate_Prescaler.
- @note The communication clock is derived from the master
- clock. The slave clock does not need to be set. */
- uint32_t SPI_RXFIFOFullThreshold;
- uint32_t SPI_TXFIFOEmptyThreshold;
- }SPI_InitTypeDef;
- /**
- * @brief Texas Instruments Synchronous Serial Protocol (SSP) Init structure definition
- */
- typedef struct
- {
- uint32_t SSP_Direction; /*!< Specifies the SPI unidirectional or bidirectional data mode.
- This parameter can be a value of @ref SPI_data_direction */
- uint32_t SSP_DataSize; /*!< Specifies the SPI data size.
- This parameter can be a value of @ref SPI_data_size */
- uint32_t SSP_NSS; /*!< Specifies whether the NSS signal is managed by
- hardware (NSS pin) or by software using the SSI bit.
- This parameter can be a value of @ref SPI_Slave_Select_management */
- uint32_t SSP_BaudRatePrescaler; /*!< Specifies the Baud Rate prescaler value which will be
- used to configure the transmit and receive SCK clock.
- This parameter can be a value of @ref SPI_BaudRate_Prescaler.
- @note The communication clock is derived from the master
- clock. The slave clock does not need to be set. */
- uint32_t SSP_RXFIFOFullThreshold;
- uint32_t SSP_TXFIFOEmptyThreshold;
- }SSP_InitTypeDef;
- /**
- * @brief National Semiconductor Microwire (NSM) Init structure definition
- */
- typedef struct
- {
- uint32_t NSM_Direction;
- uint32_t NSM_TransferMode;
- uint32_t NSM_DataSize; /*!< Specifies the SPI data size.
- This parameter can be a value of @ref SPI_data_size */
- uint32_t NSM_ControlDataSize;
- uint32_t NSM_NSS; /*!< Specifies whether the NSS signal is managed by
- hardware (NSS pin) or by software using the SSI bit.
- This parameter can be a value of @ref SPI_Slave_Select_management */
- uint32_t NSM_BaudRatePrescaler; /*!< Specifies the Baud Rate prescaler value which will be
- used to configure the transmit and receive SCK clock.
- This parameter can be a value of @ref SPI_BaudRate_Prescaler.
- @note The communication clock is derived from the master
- clock. The slave clock does not need to be set. */
- FunctionalState NSM_HandShakingCmd;
- uint32_t NSM_RXFIFOFullThreshold;
- uint32_t NSM_TXFIFOEmptyThreshold;
- }NSM_InitTypeDef;
- /**
- * @brief SPI DMA Init structure definition
- */
- typedef struct
- {
- uint32_t SPI_DMAReq;
- uint32_t SPI_DMAReceiveLevel;
- uint32_t SPI_DMATransmitLevel;
- FunctionalState SPI_DMAEnCmd;
- }SPI_DMAInitTypeDef;
- /** @defgroup SPI_data_direction
- * @{
- */
- #define SPI_Direction_2Lines_FullDuplex ((uint32_t)0x0000)
- #define SPI_Direction_1Line_Tx ((uint32_t)0x0100)
- #define SPI_Direction_1Line_Rx ((uint32_t)0x0200)
- #define SPI_Direction_EEPROM_Read ((uint32_t)0x0300)
- #define IS_SPI_DIRECTION_MODE(MODE) (((MODE) == SPI_Direction_2Lines_FullDuplex) || \
- ((MODE) == SPI_Direction_1Line_Tx) || \
- ((MODE) == SPI_Direction_1Line_Rx) || \
- ((MODE) == SPI_Direction_EEPROM_Read))
- /**
- * @}
- */
- #define SPI_Mode_Master ((uint32_t)0x0001)
- #define SPI_Mode_Slave ((uint32_t)0x0000)
- #define IS_SPI_MODE(MODE) (((MODE) == SPI_Mode_Master) || \
- ((MODE) == SPI_Mode_Slave))
- /** @defgroup SPI_data_size
- * @{
- */
- #define SPI_DataSize_8b ((uint32_t)0x0007)
- #define SPI_DataSize_16b ((uint32_t)0x000F)
- #define IS_SPI_DATASIZE(DATASIZE) (((DATASIZE) == SPI_DataSize_16b) || \
- ((DATASIZE) == SPI_DataSize_8b))
- /**
- * @}
- */
- /** @defgroup SPI_Clock_Polarity
- * @{
- */
- #define SPI_CPOL_Low ((uint32_t)0x0000)
- #define SPI_CPOL_High ((uint32_t)0x0080)
- #define IS_SPI_CPOL(CPOL) (((CPOL) == SPI_CPOL_Low) || \
- ((CPOL) == SPI_CPOL_High))
- /**
- * @}
- */
- /** @defgroup SPI_Clock_Phase
- * @{
- */
- #define SPI_CPHA_1Edge ((uint32_t)0x0000)
- #define SPI_CPHA_2Edge ((uint32_t)0x0040)
- #define IS_SPI_CPHA(CPHA) (((CPHA) == SPI_CPHA_1Edge) || \
- ((CPHA) == SPI_CPHA_2Edge))
- /**
- * @}
- */
- #define SPI_NSS_0 ((uint32_t)0x0001)
- #define SPI_NSS_Null ((uint32_t)0x0000)
- #define IS_SPI_NSS(NSS) (((NSS) == SPI_NSS_0) || \
- ((NSS) == SPI_NSS_Null))
- /** @defgroup SPI_BaudRate_Prescaler
- * @{
- */
- #define SPI_BaudRatePrescaler_2 ((uint32_t)0x0002)
- #define SPI_BaudRatePrescaler_4 ((uint32_t)0x0004)
- #define SPI_BaudRatePrescaler_8 ((uint32_t)0x0008)
- #define SPI_BaudRatePrescaler_16 ((uint32_t)0x0010)
- #define SPI_BaudRatePrescaler_32 ((uint32_t)0x0020)
- #define SPI_BaudRatePrescaler_64 ((uint32_t)0x0040)
- #define SPI_BaudRatePrescaler_128 ((uint32_t)0x0080)
- #define SPI_BaudRatePrescaler_256 ((uint32_t)0x0100)
- #define IS_SPI_BAUDRATE_PRESCALER(PRESCALER) (((PRESCALER) == SPI_BaudRatePrescaler_2) || \
- ((PRESCALER) == SPI_BaudRatePrescaler_4) || \
- ((PRESCALER) == SPI_BaudRatePrescaler_8) || \
- ((PRESCALER) == SPI_BaudRatePrescaler_16) || \
- ((PRESCALER) == SPI_BaudRatePrescaler_32) || \
- ((PRESCALER) == SPI_BaudRatePrescaler_64) || \
- ((PRESCALER) == SPI_BaudRatePrescaler_128) || \
- ((PRESCALER) == SPI_BaudRatePrescaler_256))
- /**
- * @}
- */
- /** @defgroup SPI_RXFIFOFullThreshold
- * @{
- */
- #define SPI_RXFIFOFullThreshold_1 ((uint32_t)0x0000)
- #define SPI_RXFIFOFullThreshold_2 ((uint32_t)0x0001)
- #define SPI_RXFIFOFullThreshold_3 ((uint32_t)0x0002)
- #define SPI_RXFIFOFullThreshold_4 ((uint32_t)0x0003)
- #define SPI_RXFIFOFullThreshold_5 ((uint32_t)0x0004)
- #define SPI_RXFIFOFullThreshold_6 ((uint32_t)0x0005)
- #define SPI_RXFIFOFullThreshold_7 ((uint32_t)0x0006)
- #define SPI_RXFIFOFullThreshold_8 ((uint32_t)0x0007)
- #define SPI_RXFIFOFullThreshold_9 ((uint32_t)0x0008)
- #define SPI_RXFIFOFullThreshold_10 ((uint32_t)0x0009)
- #define SPI_RXFIFOFullThreshold_11 ((uint32_t)0x000A)
- #define SPI_RXFIFOFullThreshold_12 ((uint32_t)0x000B)
- #define SPI_RXFIFOFullThreshold_13 ((uint32_t)0x000C)
- #define SPI_RXFIFOFullThreshold_14 ((uint32_t)0x000D)
- #define SPI_RXFIFOFullThreshold_15 ((uint32_t)0x000E)
- #define SPI_RXFIFOFullThreshold_16 ((uint32_t)0x000F)
- #define IS_SPI_RX_FIFO_FULL_THRESHOLD(THRESHOLD) (((THRESHOLD) == SPI_RXFIFOFullThreshold_1) || \
- ((THRESHOLD) == SPI_RXFIFOFullThreshold_2) || \
- ((THRESHOLD) == SPI_RXFIFOFullThreshold_3) || \
- ((THRESHOLD) == SPI_RXFIFOFullThreshold_4) || \
- ((THRESHOLD) == SPI_RXFIFOFullThreshold_5) || \
- ((THRESHOLD) == SPI_RXFIFOFullThreshold_6) || \
- ((THRESHOLD) == SPI_RXFIFOFullThreshold_7) || \
- ((THRESHOLD) == SPI_RXFIFOFullThreshold_8) || \
- ((THRESHOLD) == SPI_RXFIFOFullThreshold_9) || \
- ((THRESHOLD) == SPI_RXFIFOFullThreshold_10) || \
- ((THRESHOLD) == SPI_RXFIFOFullThreshold_11) || \
- ((THRESHOLD) == SPI_RXFIFOFullThreshold_12) || \
- ((THRESHOLD) == SPI_RXFIFOFullThreshold_13) || \
- ((THRESHOLD) == SPI_RXFIFOFullThreshold_14) || \
- ((THRESHOLD) == SPI_RXFIFOFullThreshold_15) || \
- ((THRESHOLD) == SPI_RXFIFOFullThreshold_16))
- /**
- * @}
- */
- /** @defgroup SPI_TXFIFOEmptyThreshold
- * @{
- */
- #define SPI_TXFIFOEmptyThreshold_0 ((uint32_t)0x0000)
- #define SPI_TXFIFOEmptyThreshold_1 ((uint32_t)0x0001)
- #define SPI_TXFIFOEmptyThreshold_2 ((uint32_t)0x0002)
- #define SPI_TXFIFOEmptyThreshold_3 ((uint32_t)0x0003)
- #define SPI_TXFIFOEmptyThreshold_4 ((uint32_t)0x0004)
- #define SPI_TXFIFOEmptyThreshold_5 ((uint32_t)0x0005)
- #define SPI_TXFIFOEmptyThreshold_6 ((uint32_t)0x0006)
- #define SPI_TXFIFOEmptyThreshold_7 ((uint32_t)0x0007)
- #define SPI_TXFIFOEmptyThreshold_8 ((uint32_t)0x0008)
- #define SPI_TXFIFOEmptyThreshold_9 ((uint32_t)0x0009)
- #define SPI_TXFIFOEmptyThreshold_10 ((uint32_t)0x000A)
- #define SPI_TXFIFOEmptyThreshold_11 ((uint32_t)0x000B)
- #define SPI_TXFIFOEmptyThreshold_12 ((uint32_t)0x000C)
- #define SPI_TXFIFOEmptyThreshold_13 ((uint32_t)0x000D)
- #define SPI_TXFIFOEmptyThreshold_14 ((uint32_t)0x000E)
- #define SPI_TXFIFOEmptyThreshold_15 ((uint32_t)0x000F)
- #define IS_SPI_TX_FIFO_EMPTY_THRESHOLD(THRESHOLD) (((THRESHOLD) == SPI_TXFIFOEmptyThreshold_0) || \
- ((THRESHOLD) == SPI_TXFIFOEmptyThreshold_1) || \
- ((THRESHOLD) == SPI_TXFIFOEmptyThreshold_2) || \
- ((THRESHOLD) == SPI_TXFIFOEmptyThreshold_3) || \
- ((THRESHOLD) == SPI_TXFIFOEmptyThreshold_4) || \
- ((THRESHOLD) == SPI_TXFIFOEmptyThreshold_5) || \
- ((THRESHOLD) == SPI_TXFIFOEmptyThreshold_6) || \
- ((THRESHOLD) == SPI_TXFIFOEmptyThreshold_7) || \
- ((THRESHOLD) == SPI_TXFIFOEmptyThreshold_8) || \
- ((THRESHOLD) == SPI_TXFIFOEmptyThreshold_9) || \
- ((THRESHOLD) == SPI_TXFIFOEmptyThreshold_10) || \
- ((THRESHOLD) == SPI_TXFIFOEmptyThreshold_11) || \
- ((THRESHOLD) == SPI_TXFIFOEmptyThreshold_12) || \
- ((THRESHOLD) == SPI_TXFIFOEmptyThreshold_13) || \
- ((THRESHOLD) == SPI_TXFIFOEmptyThreshold_14) || \
- ((THRESHOLD) <= SPI_TXFIFOEmptyThreshold_15))
- /**
- * @}
- */
- /** @defgroup SPI_DMAReceiveLevel
- * @{
- */
- #define SPI_DMAReceiveLevel_1 ((uint32_t)0x0000)
- #define SPI_DMAReceiveLevel_2 ((uint32_t)0x0001)
- #define SPI_DMAReceiveLevel_3 ((uint32_t)0x0002)
- #define SPI_DMAReceiveLevel_4 ((uint32_t)0x0003)
- #define SPI_DMAReceiveLevel_5 ((uint32_t)0x0004)
- #define SPI_DMAReceiveLevel_6 ((uint32_t)0x0005)
- #define SPI_DMAReceiveLevel_7 ((uint32_t)0x0006)
- #define SPI_DMAReceiveLevel_8 ((uint32_t)0x0007)
- #define SPI_DMAReceiveLevel_9 ((uint32_t)0x0008)
- #define SPI_DMAReceiveLevel_10 ((uint32_t)0x0009)
- #define SPI_DMAReceiveLevel_11 ((uint32_t)0x000A)
- #define SPI_DMAReceiveLevel_12 ((uint32_t)0x000B)
- #define SPI_DMAReceiveLevel_13 ((uint32_t)0x000C)
- #define SPI_DMAReceiveLevel_14 ((uint32_t)0x000D)
- #define SPI_DMAReceiveLevel_15 ((uint32_t)0x000E)
- #define SPI_DMAReceiveLevel_16 ((uint32_t)0x000F)
- #define IS_SPI_DMA_RECEIVE_LEVEL(LEVEL) ((((int32_t)(LEVEL)) >= SPI_DMAReceiveLevel_1) && \
- (((int32_t)(LEVEL)) <= SPI_DMAReceiveLevel_16))
- /**
- * @}
- */
- /** @defgroup SPI_DMATransmitLevel
- * @{
- */
- #define SPI_DMATransmitLevel_0 ((uint32_t)0x0000)
- #define SPI_DMATransmitLevel_1 ((uint32_t)0x0001)
- #define SPI_DMATransmitLevel_2 ((uint32_t)0x0002)
- #define SPI_DMATransmitLevel_3 ((uint32_t)0x0003)
- #define SPI_DMATransmitLevel_4 ((uint32_t)0x0004)
- #define SPI_DMATransmitLevel_5 ((uint32_t)0x0005)
- #define SPI_DMATransmitLevel_6 ((uint32_t)0x0006)
- #define SPI_DMATransmitLevel_7 ((uint32_t)0x0007)
- #define SPI_DMATransmitLevel_8 ((uint32_t)0x0008)
- #define SPI_DMATransmitLevel_9 ((uint32_t)0x0009)
- #define SPI_DMATransmitLevel_10 ((uint32_t)0x000A)
- #define SPI_DMATransmitLevel_11 ((uint32_t)0x000B)
- #define SPI_DMATransmitLevel_12 ((uint32_t)0x000C)
- #define SPI_DMATransmitLevel_13 ((uint32_t)0x000D)
- #define SPI_DMATransmitLevel_14 ((uint32_t)0x000E)
- #define SPI_DMATransmitLevel_15 ((uint32_t)0x000F)
- #define IS_SPI_DMA_TRANSMIT_LEVEL(LEVEL) ((((int32_t)(LEVEL)) >= SPI_DMATransmitLevel_0) && \
- (((int32_t)(LEVEL)) <= SPI_DMATransmitLevel_15))
- /**
- * @}
- */
- /** @defgroup SPI_DMA_transfer_requests
- * @{
- */
- #define SPI_DMAReq_Rx ((uint32_t)0x0001)
- #define SPI_DMAReq_Tx ((uint32_t)0x0002)
- #define IS_SPI_DMAREQ(DMAREQ) ((((DMAREQ) & (uint32_t)0xFFFC) == (uint32_t)0x00) && \
- ((DMAREQ) != (uint32_t)0x00))
- /**
- * @}
- */
- /** @defgroup SPI_Interrupt Mask and Status Flag
- * @{
- */
- #define SPI_IT_TXE ((uint32_t)0x0001) //clear by hardware
- #define SPI_IT_TXOVF ((uint32_t)0x0002) //clear by read TXOICR register
- #define SPI_IT_RXF ((uint32_t)0x0010) //clear by hardware
- #define SPI_IT_RXOVF ((uint32_t)0x0008) //clear by read RXOICR register
- #define SPI_IT_RXUDF ((uint32_t)0x0004) //clear by read RXURCR register
- #define SPI_IT_MMC ((uint32_t)0x0020) //clear by read MSTICR register
- #define SPI_IT_All ((uint32_t)0x002E)
- #define IS_SPI_GET_IT(IT) (((IT) == SPI_IT_TXE) || \
- ((IT) == SPI_IT_TXOVF) || \
- ((IT) == SPI_IT_RXF) || \
- ((IT) == SPI_IT_RXUDF) || \
- ((IT) == SPI_IT_RXOVF) || \
- ((IT) == SPI_IT_MMC))
- #define SPI_FLAG_BSY ((uint32_t)0x0001)
- #define SPI_FLAG_TXNF ((uint32_t)0x0002) //clear by hardware
- #define SPI_FLAG_TXE ((uint32_t)0x0004) //clear by hardware
- #define SPI_FLAG_RXNE ((uint32_t)0x0008) //clear by hardware
- #define SPI_FLAG_RXF ((uint32_t)0x0010) //clear by hardware
- #define SPI_FLAG_TXERR ((uint32_t)0x0020) //read clear
- #define SPI_FLAG_DCERR ((uint32_t)0x0040) //read clear
- #define IS_SPI_GET_FLAG(FLAG) (((FLAG) == SPI_SR_RFNE) || \
- ((FLAG) == SPI_SR_RFF) || \
- ((FLAG) == SPI_SR_TFE) || \
- ((FLAG) == SPI_SR_TFNF) || \
- ((FLAG) == SPI_SR_BUSY))
- /**
- * @}
- */
- /** @defgroup NSM_Direction
- * @{
- */
- #define NSM_Direction_Data_Transmit ((uint32_t)(0x0001))
- #define NSM_Direction_Data_Receive ((uint32_t)(0x0002))
- #define IS_NSM_DIRECTION_MODE(MODE) (((MODE) == NSM_Direction_Data_Transmit) || \
- ((MODE) == NSM_Direction_Data_Receive))
- /**
- * @}
- */
- /** @defgroup NSM_TransferMode
- * @{
- */
- #define NSM_TransferMode_Non_Sequential ((uint32_t)(0x0001))
- #define NSM_TransferMode_Sequential ((uint32_t)(0x0002))
- #define IS_NSM_TRANSFER_MODE(MODE) (((MODE) == NSM_TransferMode_Non_Sequential) || \
- ((MODE) == NSM_TransferMode_Sequential))
- /**
- * @}
- */
- /** @defgroup NSM_DataSize
- * @{
- */
- #define NSM_DataSize_8b ((uint32_t)0x0007)
- #define NSM_DataSize_16b ((uint32_t)0x000F)
- #define IS_NSM_DATASIZE(DATASIZE) (((DATASIZE) == NSM_DataSize_8b) || \
- ((DATASIZE) == NSM_DataSize_16b))
- /**
- * @}
- */
- /** @defgroup NSM_ControlDataSize
- * @{
- */
- #define NSM_ControlDataSize_8b ((uint32_t)0x0007)
- #define NSM_ControlDataSize_16b ((uint32_t)0x000F)
- #define IS_NSM_CONTROL_DATASIZE(DATASIZE) (((DATASIZE) == NSM_ControlDataSize_8b) || \
- ((DATASIZE) == NSM_ControlDataSize_16b))
- /**
- * @}
- */
- void SPI_DeInit(SPI_TypeDef* SPIx);
- void SPI_Init(SPI_TypeDef* SPIx, SPI_InitTypeDef* SPI_InitStruct);
- void SPI_StructInit(SPI_InitTypeDef* SPI_InitStruct);
- void SPI_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState);
- void SPI_DMAInit(SPI_TypeDef* SPIx, SPI_DMAInitTypeDef* SPI_DMAInitStruct);
- void SPI_DMAStructInit(SPI_DMAInitTypeDef* SPI_DMAInitStruct);
- void SPI_DMACmd(SPI_TypeDef* SPIx, uint32_t SPI_DMAReq, FunctionalState NewState);
- void SPI_ITConfig(SPI_TypeDef* SPIx, uint32_t SPI_IT, FunctionalState NewState);
- void SPI_SendData(SPI_TypeDef* SPIx, uint16_t Data);
- uint16_t SPI_ReceiveData(SPI_TypeDef* SPIx);
- void SPI_DataSizeConfig(SPI_TypeDef* SPIx, uint32_t SPI_DataSize);
- void SPI_BiDirectionalLineConfig(SPI_TypeDef* SPIx, uint32_t SPI_Direction);
- ITStatus SPI_GetITStatus(SPI_TypeDef* SPIx, uint32_t SPI_IT);
- void SPI_ClearITPendingBit(SPI_TypeDef* SPIx, uint32_t SPI_IT);
- FlagStatus SPI_GetFlagStatus(SPI_TypeDef* SPIx, uint32_t SPI_FLAG);
- uint32_t SPI_GetFlagStatusReg(SPI_TypeDef* SPIx);
- FlagStatus SPI_IsBusy(SPI_TypeDef* SPIx);
- FlagStatus SPI_IsTXErr(SPI_TypeDef* SPIx);
- FlagStatus SPI_IsDataCollisionErr(SPI_TypeDef* SPIx);
- void SSP_Init(SPI_TypeDef* SPIx, SSP_InitTypeDef* SSP_InitStruct);
- void SSP_StructInit(SSP_InitTypeDef* SSP_InitStruct);
- void NSM_Init(SPI_TypeDef* SPIx, NSM_InitTypeDef* NSM_InitStruct);
- void NSM_StructInit(NSM_InitTypeDef* NSM_InitStruct);
- #ifdef __cplusplus
- }
- #endif
- /**
- * @}
- */
- #endif /*__MSSCPU_SPI_H */
- /************************** (C) COPYRIGHT Megahunt *****END OF FILE****/
|