🛠 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.

Objetivo

Transformar la STM32F4DISCOVERY en un intérprete Python interactivo gracias al puerto oficial STM32F4DISC de MicroPython. El REPL pasa por el USB (CDC serie sobre el OTG FS, activado por MICROPY_HW_USB_FS en la configuración de la placa): a diferencia del modo Arduino, aquí el puerto serie USB funciona inmediatamente, sin cable externo. La configuración del puerto también activa el DAC, el generador de números aleatorios por hardware y los servos.

Material

Instalación

  1. Obtenga el firmware STM32F4DISC (builds publicados o compilación en ports/stm32 con make), fuente oficial: ports/stm32/boards/STM32F4DISC del repositorio micropython.
  2. Fláshelo en la memoria flash de 1024 Ko del STM32F407VGT6 a través del ST-LINK integrado.
  3. Vuelva a conectar al puerto OTG: aparece un puerto serie USB; ábralo a 115200 baudios (Thonny, mpremote, picocom...).

Código completo

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

# Broche verifiee 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'etat haut

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

Dos particularidades de hardware a tener en cuenta desde el principio

Verificación esperada

MicroPython v... on ...; STM32F407 with STM32F407VG se muestra al conectar el puerto OTG. El programa hace parpadear los cuatro LED y muestra btn: 0 o btn: 1 según el estado del botón. Escriba Ctrl-C para interrumpir el bucle y volver al prompt.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales