🛠 Contrôle des GPIO et interfaces simples

HPMicro HPM5100 : Microcontrôleur RISC-V 400 MHz pour la commande moteur et l'acquisition analogique · debutant · Apprenez à configurer les broches du HPM5100 pour piloter une LED et lire un bouton via le SDK HPM.

Objectifs

Ce tutoriel vise à maîtriser la configuration des broches d'entrée-sortie (GPIO) sur le microcontrôleur HPMicro HPM5100. Vous apprendrez à allumer une LED et à détecter l'état d'un bouton-poussoir, fondements essentiels pour toute interaction physique avec le système.

Matériel nécessaire

Étapes

Ouvrez une invite de commande et naviguez vers le dossier d'exemple GPIO du SDK. Assurez-vous que les variables d'environnement sont correctement définies pour le HPM5100. ``bash cd hpm_sdk/examples/drivers/gpio ``

  1. Préparation de l'environnement

Dans le fichier de configuration (souvent board.h ou pin_name.h), identifiez les broches physiques. Pour le HPM5100, consultez la datasheet pour confirmer les numéros de broches disponibles sur votre carte. Par exemple, associez une broche GPIO à une LED et une autre au bouton.

  1. Configuration matérielle

Ouvrez le fichier principal main.c. Incluez les en-têtes nécessaires et initialisez le système d'horloge. Le cœur RISC-V à 400 MHz nécessite une initialisation précise des périphériques. ```c #include "board.h" #include "hpm_gpio_drv.h"

  1. Initialisation logicielle

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); } ```

Implémentez la logique de basculement. Lisez l'état du bouton pour changer l'état de la LED. Notez que le HPM5100 gère les interruptions GPIO, mais pour ce premier pas, le polling est suffisant. ``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. Boucle principale

Compilez le projet en spécifiant la cible HPM5100, puis flashez le binaire sur la carte via l'interface USB ou JTAG. ``bash cmake -B build -DBOARD=hpm5100evk cmake --build build ``

  1. Compilation et flash

Vérification

Ouvrez le moniteur série à 115200 bauds pour vérifier les messages de démarrage. Appuyez sur le bouton physique : la LED doit s'allumer ou s'éteindre immédiatement. Si rien ne se passe, vérifiez les connexions physiques et les numéros de broches dans le code.

Pour aller plus loin

Explorez les interruptions GPIO pour éviter le polling, ou utilisez les timers synchronisés du HPM5100 pour un clignotement précis sans bloquer le processeur.

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels