#include "WS2812.h" void w28delay(uint32_t nTimer) { uint32_t i=0; for(i=0;iBSRR = 0X0080; w28delay(11); GPIOB->BSRR = 0X0080 << 16; w28delay(2); } void RGB_Set_Down() { GPIOB->BSRR = 0X0080; w28delay(2); GPIOB->BSRR = 0X0080 << 16; w28delay(10); } void RGB_Set(uint32_t G8R8B8) { int i; uint8_t byte=0; for(i=23;i>=0;i--) { byte = ((G8R8B8>>i)&0x1); if(byte == 1) { RGB_Set_Up(); }else{ RGB_Set_Down(); } } } void RGB_Rst(void) { GPIOB->BSRR=0X0080 << 16; w28delay(500); // GPIOB->BSRR = 0X0080; } uint32_t uwbled,rtkled,led4g,powerled; void Set4LEDColor(uint32_t firstled,uint32_t secondled,uint32_t thirdled,uint32_t fourthled) { __disable_irq(); RGB_Rst(); RGB_Set(firstled); RGB_Set(secondled); RGB_Set(thirdled); RGB_Set(fourthled); __enable_irq(); //RGB_Rst(); }