blink_main.c

ESP32-H2 · Archivo : blink_main.c · Lenguaje : C · Uso : Faire clignoter une LED avec un projet ESP-IDF

El hello-world ESP-IDF en el H2: el driver GPIO y las tareas FreeRTOS sustituyen a Arduino. El log imprime memoria libre en cada parpadeo, el reflejo antes de apilar componentes de radio 802.15.4.

Hardware necesario

Una placa ESP32-H2 (RISC-V a 96 MHz, radio IEEE 802.15.4 solo — sin Wi-Fi) tipo DevKitM-1, alimentada por USB. Ninguno: LED de usuario del DevKitM-1/DevKitC-1 (GPIO8) o LED + 330 Ω.

Cableado

Nada que cablear en el DevKit; si no, LED en GPIO8 por 330 Ω a GND. Consola serie en el puerto USB-Serial/JTAG (GPIO26/27).

Funcionamiento

app_main es el punto de entrada lanzado por el RTOS; gpio_set_level controla el pin y vTaskDelay duerme la tarea 500 ms sin bloquear el scheduler — la base del código ESP-IDF. Prográmelo con ESP-IDF (idf.py set-target esp32h2); el puerto USB-Serial/JTAG (GPIO26/27) sirve de consola y puerto de flash. Mantenga Boot + Reset para modo download si hace falta.

Para ir más lejos

Pase a LEDC para una respiración, o cree dos tareas con prioridades distintas para ver la planificación FreeRTOS.

blink_main.c

// blink_main.c — projet minimal ESP-IDF v5.x pour ESP32-H2.
// idf.py set-target esp32h2 && idf.py flash monitor
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "esp_log.h"

#define BROCHE_LED GPIO_NUM_8      // LED utilisateur de nombreux DevKitC-1

static const char *TAG = "blink";

void app_main(void)
{
    ESP_LOGI(TAG, "Clignotement H2 demarre");
    gpio_reset_pin(BROCHE_LED);
    gpio_set_direction(BROCHE_LED, GPIO_MODE_OUTPUT);

    int n = 0;
    while (1) {
        gpio_set_level(BROCHE_LED, n & 1);
        ESP_LOGI(TAG, "LED %d — heap libre %u", n & 1,
                 (unsigned)xPortGetFreeHeapSize());
        n++;
        vTaskDelay(pdMS_TO_TICKS(500));   // cede le CPU au scheduler
    }
}

← Volver a la ficha