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

WS2812.h

Committer:
devararendy
Date:
2016-12-10
Revision:
1:8910a1fcbdb0
Parent:
0:f080cb888db6

File content as of revision 1:8910a1fcbdb0:

#ifndef WS2812_H
#define WS2812_H
#include "mbed.h"
#include "USBSerial.h"

class WS2812
{
  public:
  
  uint8_t Red;
  uint8_t Green;
  uint8_t Blue;
  
  WS2812(PinName pin, int qty);
  ~WS2812();
  void writeColor(uint32_t RGB);
  void send1Color(uint32_t RGB);
  void sendColors(uint32_t * ColorBuffer);
  void sendReset();
  
  private:
  int LED_Qty;
  PinName dataPin;
  DigitalOut dataOut;
  
  void writeByte(uint8_t data);
  void send0();
  void send1();
};

#endif