1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
| /\* Private includes ----------------------------------------------------------\*/ /\* USER CODE BEGIN Includes \*/ #include "ws2812b/ws2812b.h" /\* USER CODE END Includes \*/
/\* Private typedef -----------------------------------------------------------\*/ /\* USER CODE BEGIN PTD \*/ color\_t RED = { 255, 0, 0 }; color\_t GREEN = { 0, 255, 0 }; color\_t BLUE = { 0, 0, 255 }; /\* USER CODE END PTD \*/
/\* Private variables ---------------------------------------------------------\*/
/\* USER CODE BEGIN PV \*/ ws2812b\_t ws2812b; /\* USER CODE END PV \*/
int main(void) { /\* USER CODE BEGIN 1 \*/
/\* USER CODE END 1 \*/
/\* MCU Configuration--------------------------------------------------------\*/
/\* Reset of all peripherals, Initializes the Flash interface and the Systick. \*/ HAL\_Init();
/\* USER CODE BEGIN Init \*/
/\* USER CODE END Init \*/
/\* Configure the system clock \*/ SystemClock\_Config();
/\* USER CODE BEGIN SysInit \*/
/\* USER CODE END SysInit \*/
/\* Initialize all configured peripherals \*/ MX\_GPIO\_Init(); MX\_DMA\_Init(); MX\_SPI1\_Init(); MX\_USART1\_UART\_Init(); /\* USER CODE BEGIN 2 \*/ ws2812b.id = 1; ws2812b.inited = 0; ws2812b.led_counts = 8; ws2812b.spi = &hspi1; // ws2812b.spi\_dm\_tx = &hdma\_spi1\_tx;
ws2812b\_init(&ws2812b); if (!ws2812b.inited) { printf("ws2812b init failed\r\n"); while (1) {
} }
/\* USER CODE END 2 \*/
/\* Infinite loop \*/ /\* USER CODE BEGIN WHILE \*/ while (1) { /\* USER CODE END WHILE \*/
/\* USER CODE BEGIN 3 \*/ ws2812b\_set\_color(&ws2812b, 0, RED); ws2812b\_set\_color(&ws2812b, 1, RED); ws2812b\_set\_color(&ws2812b, 2, RED); ws2812b\_set\_color(&ws2812b, 3, RED); ws2812b\_set\_color(&ws2812b, 4, RED); ws2812b\_set\_color(&ws2812b, 5, RED); ws2812b\_set\_color(&ws2812b, 6, RED); ws2812b\_set\_color(&ws2812b, 7, RED); ws2812b\_show(&ws2812b);
HAL\_Delay(500);
ws2812b\_set\_color(&ws2812b, 0, GREEN); ws2812b\_set\_color(&ws2812b, 1, GREEN); ws2812b\_set\_color(&ws2812b, 2, GREEN); ws2812b\_set\_color(&ws2812b, 3, GREEN); ws2812b\_set\_color(&ws2812b, 4, GREEN); ws2812b\_set\_color(&ws2812b, 5, GREEN); ws2812b\_set\_color(&ws2812b, 6, GREEN); ws2812b\_set\_color(&ws2812b, 7, GREEN); ws2812b\_show(&ws2812b);
HAL\_Delay(500);
ws2812b\_set\_color(&ws2812b, 0, BLUE); ws2812b\_set\_color(&ws2812b, 1, BLUE); ws2812b\_set\_color(&ws2812b, 2, BLUE); ws2812b\_set\_color(&ws2812b, 3, BLUE); ws2812b\_set\_color(&ws2812b, 4, BLUE); ws2812b\_set\_color(&ws2812b, 5, BLUE); ws2812b\_set\_color(&ws2812b, 6, BLUE); ws2812b\_set\_color(&ws2812b, 7, BLUE); ws2812b\_show(&ws2812b);
HAL\_Delay(500);
} /\* USER CODE END 3 \*/ }
|