From 6b1c7d20aadf40655585df465c4680eca5eca7ae Mon Sep 17 00:00:00 2001 From: Joy Lee Date: Sun, 14 Aug 2022 09:09:57 +0800 Subject: [PATCH] Added ws2812_spi support for WB32 MCU (#17143) Co-authored-by: Joy --- platforms/chibios/drivers/ws2812.c | 2 +- platforms/chibios/drivers/ws2812_spi.c | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/platforms/chibios/drivers/ws2812.c b/platforms/chibios/drivers/ws2812.c index 1b3bb598426..55ac333b1e8 100644 --- a/platforms/chibios/drivers/ws2812.c +++ b/platforms/chibios/drivers/ws2812.c @@ -6,7 +6,7 @@ /* Adapted from https://github.com/bigjosh/SimpleNeoPixelDemo/ */ #ifndef NOP_FUDGE -# if defined(STM32F0XX) || defined(STM32F1XX) || defined(GD32VF103) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX) +# if defined(STM32F0XX) || defined(STM32F1XX) || defined(GD32VF103) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX) || defined(WB32F3G71xx) || defined(WB32FQ95xx) # define NOP_FUDGE 0.4 # else # error("NOP_FUDGE configuration required") diff --git a/platforms/chibios/drivers/ws2812_spi.c b/platforms/chibios/drivers/ws2812_spi.c index 01d8148875f..9ee552b187d 100644 --- a/platforms/chibios/drivers/ws2812_spi.c +++ b/platforms/chibios/drivers/ws2812_spi.c @@ -5,7 +5,11 @@ // Define the spi your LEDs are plugged to here #ifndef WS2812_SPI -# define WS2812_SPI SPID1 +# if defined(WB32F3G71xx) || defined(WB32FQ95xx) +# define WS2812_SPI SPIDQ +# else +# define WS2812_SPI SPID1 +# endif #endif #ifndef WS2812_SPI_MOSI_PAL_MODE @@ -54,6 +58,7 @@ # define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_2 | SPI_CR1_BR_1 | SPI_CR1_BR_0) #else # define WS2812_SPI_DIVISOR_CR1_BR_X (SPI_CR1_BR_1 | SPI_CR1_BR_0) // default +# define WS2812_SPI_DIVISOR 16 #endif // Use SPI circular buffer @@ -148,8 +153,14 @@ void ws2812_init(void) { NULL, // end_cb PAL_PORT(RGB_DI_PIN), PAL_PAD(RGB_DI_PIN), +# if defined(WB32F3G71xx) || defined(WB32FQ95xx) + 0, + 0, + WS2812_SPI_DIVISOR +# else WS2812_SPI_DIVISOR_CR1_BR_X, 0 +# endif #else // HAL_SPI_V2 # if SPI_SUPPORTS_CIRCULAR == TRUE