/* * 面向 ESP32 的 ESP-IDF v5.x+ 示例 * 演示系统初始化、FreeRTOS 任务管理和统一日志 * * 组件管理(main/idf_component.yml): * dependencies: * espressif/led_strip: "^2.5.0" */ #include #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "driver/gpio.h" #include "esp_log.h" #include "esp_system.h" #include "esp_chip_info.h" static const char *TAG = "main_app"; #define BLINK_GPIO GPIO_NUM_2 // 根据开发板 LED 引脚调整 static void blink_task(void *pvParameters) { // 使用 ESP-IDF 新 API 配置 GPIO 引脚 gpio_reset_pin(BLINK_GPIO); gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); bool led_state = false; while (1) { led_state = !led_state; gpio_set_level(BLINK_GPIO, led_state); ESP_LOGI(TAG, "LED %s | Heap livre: %lu bytes", led_state ? "LIGADO" : "DESLIGADO", (unsigned long)esp_get_free_heap_size()); vTaskDelay(pdMS_TO_TICKS(1000)); } } void app_main(void) { // SoC 芯片信息 esp_chip_info_t chip_info; esp_chip_info(&chip_info); ESP_LOGI(TAG, "==========================================="); ESP_LOGI(TAG, " Iniciando ESP-IDF v5.x Modern Application "); ESP_LOGI(TAG, " Modelo do Chip: %d | Núcleos: %d | Rev: %d", chip_info.model, chip_info.cores, chip_info.revision); ESP_LOGI(TAG, "==========================================="); // 创建一个专用的 FreeRTOS 任务 xTaskCreate(blink_task, "blink_task", 3072, NULL, 5, NULL); }