This is a bitbang library for WS2812. I test it with STM32F411RE (Nucleo 441RE). If you want to use another board, u need to adjust the sum of asm("nop"). In the example program i put some code to measure how many asm("nop") do we need. See more detail about WS2812 timing https://cdn-shop.adafruit.com/datasheets/WS2812.pdf

Dependents:   STM32FC_RGB_WS2812

Files at this revision

API Documentation at this revision

Comitter:
devararendy
Date:
Sat Dec 10 09:18:10 2016 +0000
Parent:
0:f080cb888db6
Commit message:
added sendColors function, for sending color buffer to all LEDs

Changed in this revision

WS2812.cpp Show annotated file Show diff for this revision Revisions of this file
WS2812.h Show annotated file Show diff for this revision Revisions of this file
diff -r f080cb888db6 -r 8910a1fcbdb0 WS2812.cpp
--- a/WS2812.cpp	Sat Dec 10 08:18:58 2016 +0000
+++ b/WS2812.cpp	Sat Dec 10 09:18:10 2016 +0000
@@ -247,4 +247,12 @@
 {
     writeColor(RGB);
     sendReset();
+}
+void WS2812::sendColors(uint32_t * ColorBuffer)
+{
+    for(int x=0;x<LED_Qty;x++)
+    {
+        writeColor(*(&ColorBuffer[x]));
+    }
+    sendReset();
 }
\ No newline at end of file
diff -r f080cb888db6 -r 8910a1fcbdb0 WS2812.h
--- a/WS2812.h	Sat Dec 10 08:18:58 2016 +0000
+++ b/WS2812.h	Sat Dec 10 09:18:10 2016 +0000
@@ -15,7 +15,7 @@
   ~WS2812();
   void writeColor(uint32_t RGB);
   void send1Color(uint32_t RGB);
-  
+  void sendColors(uint32_t * ColorBuffer);
   void sendReset();
   
   private: