Closed domingguss closed 4 years ago
Hi, I'll try to look at the code later. I would probably need whole project to try to find anything suspicious. This is what comes to my mind when you described your issues:
HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0);
, so all your other interrupts have to have lower priority (higher number in the ARM world)ah great, lowering the other DMA channel priorities seemed to have done the trick - CubeMX by default sets all DMA interrupt priorities at 0 (highest).
(UART3 is using the DMA as well)
Thanks!
Great! Can you share some information about your project? Or pictures. How many outputs and LEDs are you using? Thanks
we have a STM32F3 that is constantly reading 8 RFID readers (MFRC522), as well the UART3 listening and responding to serial communication, and an array of 8*20 WS2812b LEDs to display the status of each RFID.
Can't really say more about the project right now...🤐
I was actually also checking out driving the WS2812b through SPI like mtien888's example here, but I stumbled upon some SYSCLK differences (48hz vs 72hz) between STMF0 and STMF3. Fortunately your solution already worked out fine :)
Thanks for details. Nice hardware. I'm always curious why people choose my lib :)
We are using strand of WS2812 pixels on a STM32F303RC, and I am using your library, but slightly modified to work with a different timer/DMA channels, due to conflicts in CubeMX, because we use communication on UART3, SPI communication with other peripherals and more.
Unfortunately, sometimes (once every minute) a LED glitch occurs: that is - the pixels are shifted like 8/9 pixels... Although this only happens once, i think it shouldn't happen at all...
I am using a 160 pixel strip, and writing out the rgb values every ±180ms. I also put the visualisation code in the same file for simplicity's sake.
Could the APB1 bus be overused?
ws2812b.h
Here is
ws2812b.c