#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "esp_log.h"
// ***ERROR*** A stack overflow in task led_task has been detected.
#define CONFIG_LOG_DEFAULT_LEVEL_VERBOSE (1)
// #define CONFIG_LOG_DEFAULT_LEVEL (5)
#define CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE (1)
#define CONFIG_LOG_MAXIMUM_LEVEL (5)
// #define CONFIG_LOG_COLORS (1)
// #define CONFIG_LOG_TIMESTAMP_SOURCE_RTOS (1)
// LED接在GPIO3腳
const gpio_num_t LED_PIN = GPIO_NUM_3;
static const char *TAG = "BLINK_APP";
// LED任務
static void led_task(void *pt) {
bool led_state = 0;
// GPIO 初始化(通常放在 task 開頭)
gpio_config_t io_conf = {
.pin_bit_mask = 1ULL << LED_PIN,
.mode = GPIO_MODE_OUTPUT,
};
gpio_config(&io_conf);
while (1) {
gpio_set_level(LED_PIN, led_state);
// printf("LED:%s\n", led_state ? "開" : "關");
ESP_LOGI(TAG, "LED: %s", led_state ? "開" : "關");
led_state = !led_state;
vTaskDelay(pdMS_TO_TICKS(1000));
}
}
// 系統入口
void app_main() {
esp_log_level_set(TAG, ESP_LOG_VERBOSE);
xTaskCreate(
led_task, // 任務函式
"led_task", // 名稱
4096, // 堆疊大小
NULL,
5, // 優先等級
NULL
);
}