#include "spi_mode.h" #include uint8_t currentMode = 0; void InitSPIDisplay(void); void InitSPI(uint8_t mode) { if (currentMode != mode) { switch (mode) { case SPI_MODE_DISPLAY: InitSPIDisplay(); break; case SPI_MODE_DAC0: case SPI_MODE_DAC1: case SPI_MODE_USB: break; } currentMode = mode; } } void InitSPIDisplay(void) { SPI_InitTypeDef spi_init; spi_init.SPI_Direction = SPI_Direction_2Lines_FullDuplex; spi_init.SPI_Mode = SPI_Mode_Master; spi_init.SPI_DataSize = SPI_DataSize_8b; spi_init.SPI_CPOL = SPI_CPOL_High; spi_init.SPI_CPHA = SPI_CPHA_2Edge; spi_init.SPI_NSS = SPI_NSS_Soft; spi_init.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2; spi_init.SPI_FirstBit = SPI_FirstBit_MSB; spi_init.SPI_CRCPolynomial = 7; SPI_Init(SPI2, &spi_init); SPI_Cmd(SPI2, ENABLE); }