void turnOnSpi(spi_device_e device) { if (isSpiInitialized[device]) return; // already initialized isSpiInitialized[device] = true; if (device == SPI_DEVICE_1) { #if STM32_SPI_USE_SPI1 // scheduleMsg(&logging, "Turning on SPI1 pins"); initSpiModule(&SPID1, EFI_SPI1_SCK_PORT, EFI_SPI1_SCK_PIN, EFI_SPI1_MISO_PORT, EFI_SPI1_MISO_PIN, EFI_SPI1_MOSI_PORT, EFI_SPI1_MOSI_PIN, EFI_SPI1_AF); #endif } if (device == SPI_DEVICE_2) { #if STM32_SPI_USE_SPI2 // scheduleMsg(&logging, "Turning on SPI2 pins"); initSpiModule(&SPID2, EFI_SPI2_SCK_PORT, EFI_SPI2_SCK_PIN, EFI_SPI2_MISO_PORT, EFI_SPI2_MISO_PIN, EFI_SPI2_MOSI_PORT, EFI_SPI2_MOSI_PIN, EFI_SPI2_AF); #endif } if (device == SPI_DEVICE_3) { #if STM32_SPI_USE_SPI3 // scheduleMsg(&logging, "Turning on SPI3 pins"); initSpiModule(&SPID3, EFI_SPI3_SCK_PORT, EFI_SPI3_SCK_PIN, EFI_SPI3_MISO_PORT, EFI_SPI3_MISO_PIN, EFI_SPI3_MOSI_PORT, EFI_SPI3_MOSI_PIN, EFI_SPI3_AF); #endif } }
void initSpiModules(void) { #if STM32_SPI_USE_SPI2 // scheduleMsg(&logging, "Turning on SPI2 pins"); initSpiModule(&SPID2, EFI_SPI2_SCK_PORT, EFI_SPI2_SCK_PIN, EFI_SPI2_MISO_PORT, EFI_SPI2_MISO_PIN, EFI_SPI2_MOSI_PORT, EFI_SPI2_MOSI_PIN, EFI_SPI2_AF); #endif #if STM32_SPI_USE_SPI3 // scheduleMsg(&logging, "Turning on SPI3 pins"); initSpiModule(&SPID3, EFI_SPI3_SCK_PORT, EFI_SPI3_SCK_PIN, EFI_SPI3_MISO_PORT, EFI_SPI3_MISO_PIN, EFI_SPI3_MOSI_PORT, EFI_SPI3_MOSI_PIN, EFI_SPI3_AF); #endif }
void turnOnSpi(spi_device_e device) { if (isSpiInitialized[device]) return; // already initialized isSpiInitialized[device] = true; if (device == SPI_DEVICE_1) { // todo: introduce a nice structure with all fields for same SPI #if STM32_SPI_USE_SPI1 // scheduleMsg(&logging, "Turning on SPI1 pins"); initSpiModule(&SPID1, getSckPin(device), getMisoPin(device), getMosiPin(device), engineConfiguration->spi1SckMode, engineConfiguration->spi1MosiMode, engineConfiguration->spi1MisoMode); #endif /* STM32_SPI_USE_SPI1 */ } if (device == SPI_DEVICE_2) { #if STM32_SPI_USE_SPI2 // scheduleMsg(&logging, "Turning on SPI2 pins"); initSpiModule(&SPID2, getSckPin(device), getMisoPin(device), getMosiPin(device), engineConfiguration->spi2SckMode, engineConfiguration->spi2MosiMode, engineConfiguration->spi2MisoMode); #endif /* STM32_SPI_USE_SPI2 */ } if (device == SPI_DEVICE_3) { #if STM32_SPI_USE_SPI3 // scheduleMsg(&logging, "Turning on SPI3 pins"); initSpiModule(&SPID3, getSckPin(device), getMisoPin(device), getMosiPin(device), engineConfiguration->spi3SckMode, engineConfiguration->spi3MosiMode, engineConfiguration->spi3MisoMode); #endif /* STM32_SPI_USE_SPI3 */ } }