🛠 Control de GPIO e interfaces simples

HPMicro HPM5100: Microcontrolador RISC-V de 400 MHz para control de motores y adquisición analógica · debutant · Apprenez à configurer les broches du HPM5100 pour piloter une LED et lire un bouton via le SDK HPM.

Objetivos

Este tutorial tiene como objetivo dominar la configuración de los pines de Entrada/Salida de Uso General (GPIO) en el microcontrolador HPMicro HPM5100. Aprenderás a encender un LED y detectar el estado de un botón pulsador, habilidades fundamentales para cualquier interacción física con el sistema.

Material Necesario

Pasos

Abre una línea de comandos y navega a la carpeta de ejemplo GPIO del SDK. Asegúrate de que las variables de entorno estén configuradas correctamente para el HPM5100. ``bash cd hpm_sdk/examples/drivers/gpio ``

  1. Preparación del Entorno

En el archivo de configuración (a menudo board.h o pin_name.h), identifica los pines físicos. Para el HPM5100, consulta la hoja de datos para confirmar los números de pines disponibles en tu placa. Asocia un pin GPIO con un LED y otro con el botón.

  1. Configuración de Hardware

Abre el archivo principal main.c. Incluye los encabezados necesarios e inicializa el sistema de reloj. El núcleo RISC-V de 400 MHz requiere una inicialización precisa de los periféricos. ```c #include "board.h" #include "hpm_gpio_drv.h"

  1. Inicialización de Software

void gpio_init(void) { clock_add_to_group(clock_gpio, 0); gpio_set_pin_output_with_initial_state(BOARD_APP_LED_GPIO_CTRL, BOARD_APP_LED_GPIO_INDEX, BOARD_APP_LED_GPIO_PIN, 0); } ```

Implementa la lógica de cambio de estado. Lee el estado del botón para cambiar el estado del LED. Ten en cuenta que el HPM5100 admite interrupciones GPIO, pero para este primer paso, el polling es suficiente. ``c while (1) { uint8_t button_state = gpio_read_pin(BOARD_APP_BUTTON_GPIO_CTRL, BOARD_APP_BUTTON_GPIO_INDEX, BOARD_APP_BUTTON_GPIO_PIN); if (button_state == 0) { gpio_write_pin(BOARD_APP_LED_GPIO_CTRL, BOARD_APP_LED_GPIO_INDEX, BOARD_APP_LED_GPIO_PIN, 1); } else { gpio_write_pin(BOARD_APP_LED_GPIO_CTRL, BOARD_APP_LED_GPIO_INDEX, BOARD_APP_LED_GPIO_PIN, 0); } delay_ms(50); } ``

  1. Bucle Principal

Compila el proyecto especificando el objetivo HPM5100, luego graba el binario en la placa a través de la interfaz USB o JTAG. ``bash cmake -B build -DBOARD=hpm5100evk cmake --build build ``

  1. Compilación y Flash

Verificación

Abre el monitor serie a 115200 baudios para verificar los mensajes de inicio. Presiona el botón físico: el LED debe encenderse o apagarse inmediatamente. Si no sucede nada, verifica las conexiones físicas y los números de pines en el código.

Para Ir Más Allá

Explora las interrupciones GPIO para evitar el polling, o usa los temporizadores sincronizados del HPM5100 para un parpadeo preciso sin bloquear el procesador.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales