🛠 Premiers pas sur le Nucleo-144 STM32H743ZI : core STM32duino, ST-LINK et premier Blink

STM32H7 Nucleo-144 (flagship: NUCLEO-H743ZI) · debutant · Schéma : IMG-stm32h7-nucleo-debutant-1-stm32h743zi-arduino-first-steps.svg — Nucleo-144 STM32H743ZI vue de dessus avec le connecteur ST Zio (Arduino Uno V3), les deux rangées ST morpho, la LED LD1 et le connecteur USB de l'ST-LINK/V2-1 mis en évidence, flat vector style, étiquettes en français, fond blanc.

What you will build

The Nucleo-144 around the STM32H743ZI is ST's flagship Cortex-M7 board: up to 480 MHz, a double-precision (IEEE 754) FPU, 2 MB of dual-bank flash and up to 1 MB of RAM (192 KB TCM + up to 864 KB user SRAM + 4 KB backup SRAM). This first tutorial gets a blink and a serial log running under the Arduino experience, using the community STM32duino core (ST-backed).

Hardware

Step 1 — Install the STM32duino core

  1. In Arduino IDE 2.x, open Boards Manager and add the index URL https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json.
  2. Install the STM32 Boards core, then select the board Nucleo H743ZI (supported since core 1.5.0; the H743ZI2 board entry exists since core 1.6.0).
  3. Note: since core 2.8.0 only Arduino IDE 2.x is supported — upgrade the IDE if you are still on 1.x.

Step 2 — The 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);
}

Step 3 — Flash and watch

Plug the USB cable into the socket labelled with the ST-LINK symbol, upload, and open the serial monitor at 115200. The console lands on the variant's default UART wired to the ST-LINK virtual COM port (the Zephyr mapping uses UART3 on PD8/PD9 — check your core version's variant mapping).

Expected result

LD1 blinks at roughly 3 Hz and the monitor prints a rolling A0=... fpu=... line — proof the 480 MHz core, the double-precision FPU and the VCP serial all work. The STM32duino variant's SystemClock_Config runs 480 MHz SYSCLK out of the box (HSE 8 MHz, PLLM=1, PLLN=120, PLLR=2, regulator at voltage scale 0).

Common pitfalls

Other tutorials for this board

Code examples for this board

← Back to the board 🛠 All tutorials