🛠 MicroPython sur la STM32F4DISCOVERY : REPL interactif et pilotage des LED

STM32F4DISCOVERY (kit Discovery STM32F407VGT6) · debutant · Schéma : la STM32F4DISCOVERY reliée par son port micro-USB OTG FS à un ordinateur ; sur l'écran, une fenêtre de REPL MicroPython affichant le prompt >>> et la commande led.on() ; les quatre LED PD12 à PD15 sont annotées.

Objectif

Transformer la STM32F4DISCOVERY en interpréteur Python interactif grâce au port officiel STM32F4DISC de MicroPython. Le REPL passe par l'USB (CDC série sur l'OTG FS, activé par MICROPY_HW_USB_FS dans la config de la carte) : contrairement au mode Arduino, ici le port série USB fonctionne immédiatement, sans câble externe. La configuration du port active aussi le DAC, le générateur de nombres aléatoires matériel et les servos.

Matériel

Installation

  1. Récupérez le firmware STM32F4DISC (builds publiés ou compilation dans ports/stm32 avec make), source officielle : ports/stm32/boards/STM32F4DISC du dépôt micropython.
  2. Flashez-le dans la flash de 1024 Ko du STM32F407VGT6 via le ST-LINK embarqué.
  3. Rebranchez sur le port OTG : un port série USB apparaît ; ouvrez-le à 115200 bauds (Thonny, mpremote, picocom...).

Code complet

# Dans le REPL (Ctrl-D puis coller) ou dans un fichier main.py :
from machine import Pin
import time

# Broche vérifiée dans ports/stm32/boards/STM32F4DISC/mpconfigboard.h
leds = [Pin('PD12', Pin.OUT),  # verte
        Pin('PD13', Pin.OUT),  # orange
        Pin('PD14', Pin.OUT),  # rouge
        Pin('PD15', Pin.OUT)]  # bleue
user = Pin('PA0', Pin.IN)      # bouton USER, actif a l'état haut

while True:
    for led in leds:
        led.on; time.sleep_ms(120); led.off
    print("btn:", user.value)

Deux particularités matérielles à retenir dès le début

Vérification attendue

MicroPython v... on ...; STM32F407 with STM32F407VG s'affiche au branchement du port OTG. Le programme fait courir les quatre LED et affiche btn: 0 ou btn: 1 selon l'état du bouton. Tapez Ctrl-C pour interrompre la boucle et revenir au prompt.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels