aboutsummaryrefslogtreecommitdiffstats
path: root/src/stm32f1/spi.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/stm32f1/spi.c')
-rw-r--r--src/stm32f1/spi.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/stm32f1/spi.c b/src/stm32f1/spi.c
index a90a030a..5ce81fb9 100644
--- a/src/stm32f1/spi.c
+++ b/src/stm32f1/spi.c
@@ -70,24 +70,24 @@ static void spi_init_pins(void)
struct spi_config
spi_setup(uint32_t bus, uint8_t mode, uint32_t rate)
{
- struct spi_config config;
- config.config = *SPI2;
-
if (bus > 0 || !rate)
shutdown("Invalid spi_setup parameters");
spi_init_pins();
- spi_set_mode(&config.config, mode);
- spi_set_baudrate(&config.config, rate);
+ SPI_TypeDef spi_hw = { };
+ LL_SPI_SetNSSMode(&spi_hw, LL_SPI_NSS_SOFT);
+ LL_SPI_SetMode(&spi_hw, LL_SPI_MODE_MASTER);
+ spi_set_mode(&spi_hw, mode);
+ spi_set_baudrate(&spi_hw, rate);
+ LL_SPI_Enable(&spi_hw);
- return config;
+ return (struct spi_config){ .spi_cr1 = spi_hw.CR1 };
}
void
spi_prepare(struct spi_config config)
{
- *SPI2 = config.config;
- LL_SPI_Enable(SPI2);
+ SPI2->CR1 = config.spi_cr1;
}
void