|
@@ -203,7 +203,7 @@ static rt_err_t stm32_spi_init(struct stm32_spi *spi_drv, struct rt_spi_configur
|
|
spi_handle->Init.TIMode = SPI_TIMODE_DISABLE;
|
|
spi_handle->Init.TIMode = SPI_TIMODE_DISABLE;
|
|
spi_handle->Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
|
|
spi_handle->Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
|
|
spi_handle->State = HAL_SPI_STATE_RESET;
|
|
spi_handle->State = HAL_SPI_STATE_RESET;
|
|
-#if defined(SOC_SERIES_STM32L4) || defined(SOC_SERIES_STM32G0)
|
|
|
|
|
|
+#if defined(SOC_SERIES_STM32L4) || defined(SOC_SERIES_STM32G0) || defined(SOC_SERIES_STM32F0)
|
|
spi_handle->Init.NSSPMode = SPI_NSS_PULSE_DISABLE;
|
|
spi_handle->Init.NSSPMode = SPI_NSS_PULSE_DISABLE;
|
|
#endif
|
|
#endif
|
|
|
|
|
|
@@ -409,7 +409,7 @@ static int rt_hw_spi_bus_init(void)
|
|
|
|
|
|
{
|
|
{
|
|
rt_uint32_t tmpreg = 0x00U;
|
|
rt_uint32_t tmpreg = 0x00U;
|
|
-#if defined(SOC_SERIES_STM32F1) || defined(SOC_SERIES_STM32G0)
|
|
|
|
|
|
+#if defined(SOC_SERIES_STM32F1) || defined(SOC_SERIES_STM32G0) || defined(SOC_SERIES_STM32F0)
|
|
/* enable DMA clock && Delay after an RCC peripheral clock enabling*/
|
|
/* enable DMA clock && Delay after an RCC peripheral clock enabling*/
|
|
SET_BIT(RCC->AHBENR, spi_config[i].dma_rx->dma_rcc);
|
|
SET_BIT(RCC->AHBENR, spi_config[i].dma_rx->dma_rcc);
|
|
tmpreg = READ_BIT(RCC->AHBENR, spi_config[i].dma_rx->dma_rcc);
|
|
tmpreg = READ_BIT(RCC->AHBENR, spi_config[i].dma_rx->dma_rcc);
|
|
@@ -447,10 +447,10 @@ static int rt_hw_spi_bus_init(void)
|
|
|
|
|
|
{
|
|
{
|
|
rt_uint32_t tmpreg = 0x00U;
|
|
rt_uint32_t tmpreg = 0x00U;
|
|
-#if defined(SOC_SERIES_STM32F1) || defined(SOC_SERIES_STM32G0)
|
|
|
|
|
|
+#if defined(SOC_SERIES_STM32F1) || defined(SOC_SERIES_STM32G0) || defined(SOC_SERIES_STM32F0)
|
|
/* enable DMA clock && Delay after an RCC peripheral clock enabling*/
|
|
/* enable DMA clock && Delay after an RCC peripheral clock enabling*/
|
|
- SET_BIT(RCC->AHBENR, spi_config[i].dma_rx->dma_rcc);
|
|
|
|
- tmpreg = READ_BIT(RCC->AHBENR, spi_config[i].dma_rx->dma_rcc);
|
|
|
|
|
|
+ SET_BIT(RCC->AHBENR, spi_config[i].dma_tx->dma_rcc);
|
|
|
|
+ tmpreg = READ_BIT(RCC->AHBENR, spi_config[i].dma_tx->dma_rcc);
|
|
#elif defined(SOC_SERIES_STM32F2) || defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7) || defined(SOC_SERIES_STM32L4)
|
|
#elif defined(SOC_SERIES_STM32F2) || defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7) || defined(SOC_SERIES_STM32L4)
|
|
SET_BIT(RCC->AHB1ENR, spi_config[i].dma_tx->dma_rcc);
|
|
SET_BIT(RCC->AHB1ENR, spi_config[i].dma_tx->dma_rcc);
|
|
/* Delay after an RCC peripheral clock enabling */
|
|
/* Delay after an RCC peripheral clock enabling */
|
|
@@ -861,6 +861,30 @@ static void stm32_get_dma_info(void)
|
|
#endif
|
|
#endif
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+#if defined(SOC_SERIES_STM32F0)
|
|
|
|
+void SPI1_DMA_RX_TX_IRQHandler(void)
|
|
|
|
+{
|
|
|
|
+#if defined(BSP_USING_SPI1) && defined(BSP_SPI1_TX_USING_DMA)
|
|
|
|
+ SPI1_DMA_TX_IRQHandler();
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
+#if defined(BSP_USING_SPI1) && defined(BSP_SPI1_RX_USING_DMA)
|
|
|
|
+ SPI1_DMA_RX_IRQHandler();
|
|
|
|
+#endif
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void SPI2_DMA_RX_TX_IRQHandler(void)
|
|
|
|
+{
|
|
|
|
+#if defined(BSP_USING_SPI2) && defined(BSP_SPI2_TX_USING_DMA)
|
|
|
|
+ SPI2_DMA_TX_IRQHandler();
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
+#if defined(BSP_USING_SPI2) && defined(BSP_SPI2_RX_USING_DMA)
|
|
|
|
+ SPI2_DMA_RX_IRQHandler();
|
|
|
|
+#endif
|
|
|
|
+}
|
|
|
|
+#endif /* SOC_SERIES_STM32F0 */
|
|
|
|
+
|
|
int rt_hw_spi_init(void)
|
|
int rt_hw_spi_init(void)
|
|
{
|
|
{
|
|
stm32_get_dma_info();
|
|
stm32_get_dma_info();
|