# WS2812 範例編譯錯誤

**URL:** https://forum.amebaiot.com/t/ws2812/1490
**Category:** Peripherals
**Tags:** rtl872xd, evb-bw16, 中文
**Created:** [October 23, 2022, 1:14pm UTC](https://forum.amebaiot.com/t/ws2812/1490 "2022-10-23T13:14:53Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![Kevin](https://avatars.discourse-cdn.com/v4/letter/k/2acd7d/32.png) [@Kevin](https://forum.amebaiot.com/u/Kevin)
#### Post date: [October 23, 2022, 1:14pm UTC](https://forum.amebaiot.com/t/ws2812/1490/1 "2022-10-23T13:14:53Z")

</div>

我使用 Arduino IDE V1.18.13 及 Realtek Lib V3.1.4

測試 WS2812B\_Pattrms 範例會出現編譯錯誤.

以下訊息  
Arduino: 1.8.13 (Windows 10), Board: “BW16 (RTL8720DN), Disable, Enable”

C:\Users\dell\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.4\libraries\WS2812B\src\WS2812B.cpp: In member function ‘void WS2812B::show()’:

C:\Users\dell\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.4\libraries\WS2812B\src\WS2812B.cpp:87:38: error: no matching function for call to ‘SPIClass::setDataMode(int, int, int)’

```
     SPI.setDataMode(SPI_SS, 12, 0);

                                  ^

```

In file included from C:\Users\dell\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.4\libraries\WS2812B\src\WS2812B.h:5:0,

```
             from C:\Users\dell\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.4\libraries\WS2812B\src\WS2812B.cpp:1:

```

C:\Users\dell\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.4\libraries\SPI\src/SPI.h:90:10: note: candidate: void SPIClass::setDataMode(uint8\_t, uint8\_t)

```
 void setDataMode(uint8_t _bits, uint8_t _mode);

      ^ ~~~~~~~~~~

```

C:\Users\dell\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.4\libraries\SPI\src/SPI.h:90:10: note: candidate expects 2 arguments, 3 provided

C:\Users\dell\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.4\libraries\SPI\src/SPI.h:91:10: note: candidate: void SPIClass::setDataMode(uint8\_t)

```
 void setDataMode(uint8_t _mode);

      ^ ~~~~~~~~~~

```

C:\Users\dell\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.4\libraries\SPI\src/SPI.h:91:10: note: candidate expects 1 argument, 3 provided

C:\Users\dell\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.4\libraries\WS2812B\src\WS2812B.cpp:88:29: error: ‘SPI1\_MOSI’ was not declared in this scope

```
 } else if (_input_pin== SPI1_MOSI) {

                         ^ ~~~~~~~~

```

C:\Users\dell\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.4\libraries\WS2812B\src\WS2812B.cpp:90:9: error: ‘SPI1’ was not declared in this scope

```
     SPI1.begin();

     ^~~~

```

C:\Users\dell\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.4\libraries\WS2812B\src\WS2812B.cpp:92:23: error: ‘SPI1\_MISO’ was not declared in this scope

```
     Pinmux_Config(SPI1_MISO, PINMUX_FUNCTION_GPIO);

                   ^ ~~~~~~~~

```

C:\Users\dell\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.4\libraries\WS2812B\src\WS2812B.cpp:93:23: error: ‘SPI1\_SCLK’ was not declared in this scope

```
     Pinmux_Config(SPI1_SCLK, PINMUX_FUNCTION_GPIO);

                   ^ ~~~~~~~~

```

C:\Users\dell\AppData\Local\Arduino15\packages\realtek\hardware\AmebaD\3.1.4\libraries\WS2812B\src\WS2812B.cpp:94:23: error: ‘SPI1\_SS’ was not declared in this scope

```
     Pinmux_Config(SPI1_SS, PINMUX_FUNCTION_GPIO);

                   ^ ~~~~~~

```

exit status 1

Error compiling for board BW16 (RTL8720DN).

This report would have more information with  
“Show verbose output during compilation”  
option enabled in File → Preferences.

---

<div class="post-metadata">

### Author: ![daphwl](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.amebaiot.com/daphwl/32/756_2.png) [@daphwl](https://forum.amebaiot.com/u/daphwl)
#### Post date: [October 26, 2022, 5:50am UTC](https://forum.amebaiot.com/t/ws2812/1490/2 "2022-10-26T05:50:37Z")

</div>

@Kevin 你好，

謝謝你提出的這個問題，昨天已經驗證並解決了這個問題。 你可以參考以下鏈接的解決方案：

> <https://github.com/ambiot/ambd_arduino/pull/142>
>
> \- Update WS2812B.cpp \`show()\` function
> \- Update SPI.cpp spelling error

---

<div class="post-metadata">

### Author: ![Kevin](https://avatars.discourse-cdn.com/v4/letter/k/2acd7d/32.png) [@Kevin](https://forum.amebaiot.com/u/Kevin)
#### Post date: [October 26, 2022, 12:56pm UTC](https://forum.amebaiot.com/t/ws2812/1490/3 "2022-10-26T12:56:40Z")

</div>

謝謝,已更新及測試OK
