Files
ESPDocs/public/exemplos/zh-CN/esp-idf.c
T

57 lines
1.6 KiB
C

/*
* 面向 ESP32 的 ESP-IDF v5.x+ 示例
* 演示系统初始化、FreeRTOS 任务管理和统一日志
*
* 组件管理(main/idf_component.yml):
* dependencies:
* espressif/led_strip: "^2.5.0"
*/
#include <stdio.h>
#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, " Starting ESP-IDF v5.x Modern Application ");
ESP_LOGI(TAG, " Chip model: %d | Cores: %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);
}