ESP32 LED 閃爍使用原廠 SDK 和 Task
內容
簡介
使用 ESP32 和原廠 SDK(ESP-IDF)來讓 LED 閃爍,可以利用 FreeRTOS 的任務(Task)來實現。
安裝 VSCode 和 ESP-IDF VSCode 擴展
確保你已經安裝和配置好了 ESP-IDF 開發環境。您也可以參考 ESP32 入門到精通 – 在 VSCode 安裝 ESP-IDF 插件 這篇文章。
ESP32 DevKit 開發模組
選擇一個 ESP32 模組如 ESP32 DevKitC V4。
材料準備並連接 LED
1. 選擇一顆適合的 LED,例如紅色、綠色或藍色 LED。
2. 建議使用限流電阻來限制 LED 的電流,以保護 ESP32 的 GPIO 引腳。
3. 將 LED 的陽腳(通常是較長的那根腳)連接到選擇的 GPIO 引腳(如 GPIO2)。
4. 將 LED 的陰腳(通常是較短的那根腳)連接到地(GND)。
新建 ESP32 專案
利用在 VSCode 的 IDF 插件來新建一個 ESP32 專案可參考 ESP32 入門到精通 – 如何用 VSCode 創建 ESP32 專案。
編寫代碼
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "sdkconfig.h"
// LED GPIO 定義
#define BLINK_GPIO 2
// 閃爍任務
void blink_task(void *pvParameter)
{
while (1)
{
// LED ON
gpio_set_level(BLINK_GPIO, 1);
printf("LED ON\n");
vTaskDelay(1000 / portTICK_PERIOD_MS);
// LED OFF
gpio_set_level(BLINK_GPIO, 0);
printf("LED OFF\n");
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
}
void app_main(void)
{
// 配置 GPIO
gpio_pad_select_gpio(BLINK_GPIO);
gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT);
// 創建閃爍任務
xTaskCreate(&blink_task, "blink_task", 1024, NULL, 5, NULL);
}
編譯和燒錄
在 VSCode 中找到 "ESP32-IDF : Build, Flash and Monitor" ICON 執行和燒錄。
查看結果
我們可以查看 LED 的閃爍或查看終端機的列印結果,會每隔一秒看到一次變化,如下...
LED ON
LED OFF
LED ON
LED OFF
...
結論
通過以上步驟和方法,就能夠使用 VSCode 來開發 ESP32 的應用程式,並實現 LED 閃爍的功能。如果有任何錯誤,請檢查 ESP-IDF 和 VSCode 等的配置,確保路徑和環境變量都設置正確。