🛠 Premiers pas sur le Nucleo-144 STM32H743ZI : core STM32duino, ST-LINK et premier Blink
Qué vas a construir
La Nucleo-144 basada en el STM32H743ZI es la placa insignia de ST con Cortex-M7: hasta 480 MHz, una FPU de doble precisión (IEEE 754), 2 MB de flash dual-bank y hasta 1 MB de RAM (192 KB TCM + hasta 864 KB de SRAM de usuario + 4 KB de SRAM de respaldo). Este primer tutorial pone en marcha un parpadeo de LED y un registro serie bajo la experiencia de Arduino, utilizando el core STM32duino de la comunidad (respaldado por ST).
Hardware
- 1 Nucleo-144 STM32H743ZI (referencia insignia de la familia H7 Nucleo) + un cable USB de datos
- No se requiere cableado: el LED integrado y el puerto COM virtual del ST-LINK son suficientes
- El depurador/programador ST-LINK/V2-1 integrado en la placa enumera almacenamiento masivo, un puerto COM virtual y el puerto de depuración a través de un único conector USB — no se requiere una sonda externa
Paso 1 — Instalar el core STM32duino
- En Arduino IDE 2.x, abre el Gestor de placas y añade la URL del índice
https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json. - Instala el core STM32 Boards, luego selecciona la placa Nucleo H743ZI (admitida desde el core 1.5.0; la entrada de placa H743ZI2 existe desde el core 1.6.0).
- Nota: desde el core 2.8.0 solo se soporta Arduino IDE 2.x — actualiza el IDE si aún estás en la versión 1.x.
Paso 2 — El sketch
// Blink + serial + analog + double-precision FPU smoke test.
// Board: "Nucleo H743ZI" under the STM32duino "STM32 Boards" core.
#include <Arduino.h>
volatile double sink; // keep the FPU loop from being folded away
void setup {
pinMode(LED1, OUTPUT); // LED1 = core alias for the onboard LED (LD1, PB0)
Serial.begin(115200); // ST-LINK virtual COM port, 115200 8N1
sink = 0.0; // H7 FPU is double-precision — no tricks needed
for (int i = 1; i <= 1000000; i++) sink += 1.0 / (i + 0.5);
}
void loop {
digitalWrite(LED1, HIGH);
delay(150);
digitalWrite(LED1, LOW);
delay(150);
int raw = analogRead(A0); // 3 ADCs, up to 16-bit; A0..A27 exist on this variant
Serial.printf("A0=%u fpu=%.6f\n", raw, sink);
delay(500);
}
Paso 3 — Programar y observar
Conecta el cable USB al conector etiquetado con el símbolo ST-LINK, sube el código y abre el monitor serie a 115200. La consola se conecta a la UART predeterminada de la variante, conectada al puerto COM virtual del ST-LINK (el mapeo de Zephyr utiliza UART3 en PD8/PD9 — verifica el mapeo de variantes de tu versión del core).
Resultado esperado
LD1 parpadea a aproximadamente 3 Hz y el monitor imprime una línea continua A0=... fpu=... — prueba de que el núcleo de 480 MHz, la FPU de doble precisión y la serie VCP funcionan correctamente. La función SystemClock_Config de la variante STM32duino ejecuta 480 MHz de SYSCLK de fábrica (HSE 8 MHz, PLLM=1, PLLN=120, PLLR=2, regulador en escala de voltaje 0).
Problemas comunes
- Trampa de pinout ZI vs ZI2: las dos placas comparten el mismo MCU y la página de producto de ST, pero cablean el conector Arduino de forma diferente — el core mantiene dos tablas
digitalPin[]distintas, por lo que elegir la placa incorrecta remapea silenciosamente todos los pines D/A. - Los cores antiguos no son seguros en esta placa: la variante H743ZI se envió con un error tipográfico en
digitalPin[]que solo se corrigió en el PR #1383 del core — utiliza un core reciente. - El H743ZI está obsoleto: ST lo ha descontinuado y recomienda el NUCLEO-H753ZI para nuevos diseños; todo lo expuesto aquí también aplica a las placas hermanas H7 Nucleo-144.
- Un cable USB de solo carga no muestra ningún puerto COM — prueba con un cable de datos.
Otros tutoriales para esta placa
- GPIO, ADC 16 bits et DAC sur le Nucleo STM32H743ZI : bouton, LED et potentiomètre
- MicroPython sur le Nucleo STM32H743ZI : le REPL 480 MHz via le port série ST-LINK
- Zephyr RTOS sur le Nucleo STM32H743ZI : west build, flash et le piège des 96 MHz
- STM32Cube HAL à 480 MHz sur le STM32H743ZI : VOS0, latence flash et HSE bypass
- FreeRTOS sur le Nucleo STM32H743ZI : le projet officiel CubeH7, tâches et file d'attente
- Serveur web sur l'Ethernet du STM32H743ZI : démo LwIP officielle, RMII et errata