> For the complete documentation index, see [llms.txt](https://cavedu.gitbook.io/linkit-7697/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cavedu.gitbook.io/linkit-7697/linkit-7697-arduinoide/kai-fa-zhi-nan/gpio.md).

# GPIO

LinkIt 7697 支援下列的 Arduino APIs：

* [pinMode](https://www.arduino.cc/en/Reference/PinMode)
* [digitalRead](https://www.arduino.cc/en/Reference/DigitalRead)
* [digitalWrite](https://www.arduino.cc/en/Reference/DigitalWrite)

透過這些 APIs，開發者可以控制或是讀取數位腳位 (GPIO) 上的狀態 (為高電位或是低電位)。

不過要注意的是，LinkIt 7697 的腳位定義並不完全與 Arduino Uno 相同，請參考[開發板腳位圖](https://www.dropbox.com/s/1e7hovcei5a9zs1/7697_pin-out_diagram.pdf?dl=0)以獲得更多資訊。

### Blink 範例

藉由執行 Arduino 的 Blink 範例，來控制板上 **USR** LED 使其閃爍。請依照下列步驟將 Blink sketch 載入到 LinkIt 7697：

1. 依照[前面章節](https://cavedu.gitbook.io/linkit-7697/linkit-7697-arduino-ide-kai-fa-zhi-nan/huan-jing-she-ding/jiang-linkit-7697-lian-jie-dao-dian-nao)所述，將開發板與電腦連接。
2. 從 IDE 的 **Tools > Board** 選單中選取 **LinkIt 7697**。
3. 從 **Tools > Port** 選單中選取 LinkIt 7697 所在的 COM 埠，格式為 "**COM** ***XYZ*****&#x20;(LinkIt 7697)**"。***XYZ***  在不同電腦上會呈現不同數字，以下圖為例，LinkIt 7697 所在的 COM 埠編號為 **80**：

![](https://3972650740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FY4gduUSLWOCI23CXUWej%2Fuploads%2Fg9goamos8seyEtwKumsR%2Fboard_port_selection.png?alt=media\&token=68b5e18f-cfd0-42fa-a52e-9c8380d0370c)

4.從 **File > Examples > 01. Basics > Blink** 選單裡找到 Blink 範例 (如下圖)：&#x20;

![](https://3972650740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FY4gduUSLWOCI23CXUWej%2Fuploads%2FllYn4AWL7AECzDjPml8Z%2Fblink_example.png?alt=media\&token=77be4911-3c3b-483c-ad68-d12b2b359349)

5.點選工具列上的 **Upload** 按鈕：&#x20;

![](https://3972650740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FY4gduUSLWOCI23CXUWej%2Fuploads%2Foe5wfjpA2v3AkIoKTeg1%2Fclick_upload.png?alt=media\&token=0345d82d-7cc1-4718-8643-b13c0739db12)

6.接下來 IDE 就會開始編譯及上傳程式到開發板。當 IDE 正在上傳程式時，會看見板子上的 **TX** 和 **RX** LEDs 不斷地閃爍。上傳完成時，IDE 會顯示出 `Done uploading` 的訊息 (如下圖)：&#x20;

![](https://3972650740-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FY4gduUSLWOCI23CXUWej%2Fuploads%2FVbce6qr0qobQ6wlkksS0%2Fdone_uploading.png?alt=media\&token=eda3c20a-74c8-4747-834f-b8733e961742)

7.此時開發板會自動重開機，接著板子上的 **USR** LED 便會開始以每秒一次的頻率進行閃爍。

這裡要注意 LinkIt 7697 與 Arduino Uno 有個不同的地方，即兩塊開發板對 LED 腳位的定義不同。LinkIt 7697 的 **USR** LED 是對應到 **P7**，並非 Uno 的 P13。所以下面這行程式碼：

```
digital_write(LED_BUILTIN, HIGH);
```

在 LinkIt 7697 上與下列程式碼是等價的：

```
digital_write(7, HIGH); // 7 maps to P7 on LinkIt 7697 board
```

詳細的開發板腳位定義請參考 LinkIt 7697 [開發板腳位圖](https://www.dropbox.com/s/1e7hovcei5a9zs1/7697_pin-out_diagram.pdf?dl=0)。
