void TM_SPI_InitWithMode(SPI_TypeDef* SPIx, TM_SPI_PinsPack_t pinspack, TM_SPI_Mode_t SPI_Mode) { /* Init with custom mode, 0, 1, 2, 3 */ #ifdef SPI1 if (SPIx == SPI1) { TM_SPIx_Init(SPI1, pinspack, SPI_Mode, TM_SPI1_PRESCALER, TM_SPI1_MASTERSLAVE, TM_SPI1_FIRSTBIT); } #endif #ifdef SPI2 if (SPIx == SPI2) { TM_SPIx_Init(SPI2, pinspack, SPI_Mode, TM_SPI2_PRESCALER, TM_SPI2_MASTERSLAVE, TM_SPI2_FIRSTBIT); } #endif #ifdef SPI3 if (SPIx == SPI3) { TM_SPIx_Init(SPI3, pinspack, SPI_Mode, TM_SPI3_PRESCALER, TM_SPI3_MASTERSLAVE, TM_SPI3_FIRSTBIT); } #endif #ifdef SPI4 if (SPIx == SPI4) { TM_SPIx_Init(SPI4, pinspack, SPI_Mode, TM_SPI4_PRESCALER, TM_SPI4_MASTERSLAVE, TM_SPI4_FIRSTBIT); } #endif #ifdef SPI5 if (SPIx == SPI5) { TM_SPIx_Init(SPI5, pinspack, SPI_Mode, TM_SPI5_PRESCALER, TM_SPI5_MASTERSLAVE, TM_SPI5_FIRSTBIT); } #endif #ifdef SPI6 if (SPIx == SPI6) { TM_SPIx_Init(SPI6, pinspack, SPI_Mode, TM_SPI6_PRESCALER, TM_SPI6_MASTERSLAVE, TM_SPI6_FIRSTBIT); } #endif }
void TM_SPI_Init(SPI_TypeDef* SPIx, TM_SPI_PinsPack_t pinspack) { /* Init with default settings */ #ifdef SPI1 if (SPIx == SPI1) { TM_SPIx_Init(SPI1, pinspack, TM_SPI1_MODE, TM_SPI1_PRESCALER, TM_SPI1_MASTERSLAVE, TM_SPI1_FIRSTBIT); } #endif #ifdef SPI2 if (SPIx == SPI2) { TM_SPIx_Init(SPI2, pinspack, TM_SPI2_MODE, TM_SPI2_PRESCALER, TM_SPI2_MASTERSLAVE, TM_SPI2_FIRSTBIT); } #endif #ifdef SPI3 if (SPIx == SPI3) { TM_SPIx_Init(SPI3, pinspack, TM_SPI3_MODE, TM_SPI3_PRESCALER, TM_SPI3_MASTERSLAVE, TM_SPI3_FIRSTBIT); } #endif #ifdef SPI4 if (SPIx == SPI4) { TM_SPIx_Init(SPI4, pinspack, TM_SPI4_MODE, TM_SPI4_PRESCALER, TM_SPI4_MASTERSLAVE, TM_SPI4_FIRSTBIT); } #endif #ifdef SPI5 if (SPIx == SPI5) { TM_SPIx_Init(SPI5, pinspack, TM_SPI5_MODE, TM_SPI5_PRESCALER, TM_SPI5_MASTERSLAVE, TM_SPI5_FIRSTBIT); } #endif #ifdef SPI6 if (SPIx == SPI6) { TM_SPIx_Init(SPI6, pinspack, TM_SPI6_MODE, TM_SPI6_PRESCALER, TM_SPI6_MASTERSLAVE, TM_SPI6_FIRSTBIT); } #endif }
void TM_SPI_InitFull( SPI_TypeDef* SPIx, \ TM_SPI_PinsPack_t pinspack, \ uint16_t SPI_BaudRatePrescaler, \ TM_SPI_Mode_t SPI_Mode_t, \ uint16_t SPI_Mode, \ uint16_t SPI_FirstBit \ ) { /* Init FULL SPI settings by user */ #ifdef SPI1 if (SPIx == SPI1) { TM_SPIx_Init(SPI1, pinspack, SPI_Mode_t, SPI_BaudRatePrescaler, SPI_Mode, SPI_FirstBit); } #endif #ifdef SPI2 if (SPIx == SPI2) { TM_SPIx_Init(SPI2, pinspack, SPI_Mode_t, SPI_BaudRatePrescaler, SPI_Mode, SPI_FirstBit); } #endif #ifdef SPI3 if (SPIx == SPI3) { TM_SPIx_Init(SPI3, pinspack, SPI_Mode_t, SPI_BaudRatePrescaler, SPI_Mode, SPI_FirstBit); } #endif #ifdef SPI4 if (SPIx == SPI4) { TM_SPIx_Init(SPI4, pinspack, SPI_Mode_t, SPI_BaudRatePrescaler, SPI_Mode, SPI_FirstBit); } #endif #ifdef SPI5 if (SPIx == SPI5) { TM_SPIx_Init(SPI5, pinspack, SPI_Mode_t, SPI_BaudRatePrescaler, SPI_Mode, SPI_FirstBit); } #endif #ifdef SPI6 if (SPIx == SPI6) { TM_SPIx_Init(SPI6, pinspack, SPI_Mode_t, SPI_BaudRatePrescaler, SPI_Mode, SPI_FirstBit); } #endif }
/* * SPI 初始化的 Function */ void TM_SPI_Init(SPI_TypeDef* SPIx, TM_SPI_PinsPack_t pinspack) { /* * 可以看到這邊,要使用每一組 SPI 都經過了包裝,各自呼叫了 TM_SPIx_Init,因此在指定要使用哪一個 SPI 時, * 記得要去 defines.h 先進行 preprocessor 做定義。 * * 可以發現到,其實類似的 Init Function 有好幾個,這一個 TM_SPI_Init 則是所有的參數都使用預設值。 */ /* Init with default settings */ #ifdef SPI1 if (SPIx == SPI1) { TM_SPIx_Init(SPI1, pinspack, TM_SPI1_MODE, TM_SPI1_PRESCALER, TM_SPI1_MASTERSLAVE, TM_SPI1_FIRSTBIT); } #endif #ifdef SPI2 if (SPIx == SPI2) { TM_SPIx_Init(SPI2, pinspack, TM_SPI2_MODE, TM_SPI2_PRESCALER, TM_SPI2_MASTERSLAVE, TM_SPI2_FIRSTBIT); } #endif #ifdef SPI3 if (SPIx == SPI3) { TM_SPIx_Init(SPI3, pinspack, TM_SPI3_MODE, TM_SPI3_PRESCALER, TM_SPI3_MASTERSLAVE, TM_SPI3_FIRSTBIT); } #endif #ifdef SPI4 if (SPIx == SPI4) { TM_SPIx_Init(SPI4, pinspack, TM_SPI4_MODE, TM_SPI4_PRESCALER, TM_SPI4_MASTERSLAVE, TM_SPI4_FIRSTBIT); } #endif #ifdef SPI5 if (SPIx == SPI5) { TM_SPIx_Init(SPI5, pinspack, TM_SPI5_MODE, TM_SPI5_PRESCALER, TM_SPI5_MASTERSLAVE, TM_SPI5_FIRSTBIT); } #endif #ifdef SPI6 if (SPIx == SPI6) { TM_SPIx_Init(SPI6, pinspack, TM_SPI6_MODE, TM_SPI6_PRESCALER, TM_SPI6_MASTERSLAVE, TM_SPI6_FIRSTBIT); } #endif }