Skip to Content

Programar STM32 Black Pill con Arduino IDE

Programar STM32 Black Pill con Arduino IDE

Este artículo explica cómo programar la placa STM32 Black Pill con el Arduino IDE.

Partes necesarias

Necesitarás una placa de desarrollo STM32 Black Pill y un cable USB-C para programar la placa. También será útil una protoboard y algunos cables para hacer pruebas.

STM32 Black Pill

Cable USB C

Dupont wire set

Juego de cables Dupont

Half_breadboard56a

Protoboard

Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.

Descargar e instalar STM32CubeProgrammer

El Arduino IDE no tiene la funcionalidad para programar microprocesadores STM32. Necesitas software adicional para eso. Específicamente, necesitamos la herramienta de línea de comandos «STM32_Programmer_CLI» que viene como parte del STM32CubeProgrammer software.

Para instalarlo, ve a STM32CubeProgrammer el sitio web y haz clic en el botón rojo que dice «Get Software»:

Get Software Button for STM32CubeProgrammer
Botón Get Software para STM32CubeProgrammer

El sitio web hará scroll hasta mostrar la lista de instalaciones disponibles del software STM32CubeProgrammer para diferentes sistemas operativos:

List of STM32CubeProgrammer software installations
Lista de instalaciones del software STM32CubeProgrammer

Haz clic en el botón rojo «Get latest» para tu sistema operativo o en «Select version» para elegir una versión específica del software STM32CubeProgrammer que quieras instalar. En ambos casos aparecerá un cuadro de diálogo donde debes aceptar el acuerdo de licencia:

License Agreement for STM32CubeProgrammer
Acuerdo de licencia para STM32CubeProgrammer

Después, aparecerá un segundo cuadro de diálogo donde puedes iniciar sesión en una cuenta MySt existente, crear una nueva cuenta MyST o «Download as guest»:

Dialog to create a MyST account
Diálogo para crear una cuenta MyST

Puedes intentar hacer clic en el pequeño enlace «Download as guest» en la parte inferior derecha del diálogo. Se abrirá un formulario donde puedes ingresar tus datos y, lo más importante, una dirección de correo electrónico donde recibirás un enlace de descarga.

Sin embargo, eso no funcionó para mí. Recibí el enlace de descarga pero me apareció el mensaje de que el enlace ya no era válido.

En su lugar, creé una cuenta MyST y entonces pude descargar el software como archivo zip, por ejemploen.stm32cubeprg-win64-v2-19-0.zip. Descomprime este archivo y en Windows encontrarás un archivo llamadoSetupSTM32CubeProgrammer_win64.exe dentro. Ejecuta este archivo .exe para instalar el software:

Installer for STM32CubeProgrammer
Instalador para STM32CubeProgrammer

Si la instalación fue exitosa, entonces podemos instalar las placas STM32.

Instalar placas STM32

Para instalar el core STM32 ve a File -> Preferences y abre el diálogo de Preferencias

File -> Preferences Menu
Menú File -> Preferences

En el diálogo de Preferencias ve a la pestaña Settings. Al final verás «Additional boards manager URLs:». Haz clic en el botón a la derecha (marcado en amarillo) para abrir el editor de URLs

Settings Tab in Preferences Dialog
Pestaña Settings en el diálogo de Preferencias

En el editor de URLs añade la siguiente URL a la lista:

https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json

La imagen abajo muestra el campo de edición de Additional Boards Manager con la URL añadida para las placas STM32:

Additional Boards Manager URLs
URLs adicionales del Boards Manager

Esto le indicará al Arduino IDE desde dónde descargar los archivos de las placas STM32. Si ya hay URLs en el editor, está bien. Solo añade la nueva URL en una línea nueva.

Luego abre el BOARDS MANAGER, escribe «STMicroelectronics» en la barra de búsqueda y luego instala las «STM32 MCU based boards» como se muestra abajo:

Install STM32 MCU based boards
Instalar placas basadas en STM32 MCU

Esto iniciará la descarga e instalación de los archivos core STM32, lo cual tomará un poco de tiempo:

Installing STM32 core files
Instalando archivos core STM32

Tuve un error la primera vez que lo intenté, pero después de presionar «INSTALL» una segunda vez, funcionó. Ahora estamos listos para seleccionar una placa STM32 y programarla.

Seleccionar la placa Black Pill

Abre el BOARDS MANAGER y escribe «f4» en la barra de búsqueda. Deberías ver una placa llamada «Generic STM32 F4 Series». Esa es la placa que quieres, si tienes la Black Pill listada en Partes necesarias. La imagen abajo muestra el diálogo de selección de placa:

Select Generic STM32 F4 Series board
Seleccionar placa Generic STM32 F4 Series

Si tienes la placa conectada a tu PC vía USB, también deberías poder seleccionar el puerto serial, por ejemplo COM4 como en el ejemplo. Si tienes problemas con la conexión USB, consulta la sección de Problemas.

Configurar parámetros de la placa

Antes de programar la placa necesitamos configurar los parámetros correctos. Ve al menú «Tool»:

Tools Menu
Menú Tools

Al final de este menú encontrarás una lista de parámetros que debes configurar con los siguientes valores:

Ahora finalmente estamos listos para programar la placa.

Programar la Black Pill

Si has conectado la placa correctamente vía USB, necesitas poner la placa en modo programación presionando y manteniendo el botónBOOT0y luego presionando y soltando el botónNRST. La imagen abajo muestra dónde están ubicados estos botones en la placa Black Pill:


BOOT0 and NRST buttons on Black Pill board
Botones BOOT0 y NRST en la placa Black Pill

Ten en cuenta que debes hacer esto cada vez que quieras descargar un nuevo programa en la Black Pill. Puedes empezar probando el programa clásico Blink:

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  
  delay(1000); 
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);
}

Si tiene éxito, el LED azul en la placa debería parpadear cada segundo. Si no, revisa la siguiente sección.

Problemas

Flashear la placa Black Pill puede ser complicado. Hay algunos problemas comunes que discutiremos en esta sección.

Dispositivo USB no reconocido

El primer problema común en Windows es el error «USB device not recognized». Conectas la placa Black Pill a tu computadora vía USB pero cuando presionas el BOOT0 y el NRST botón para flashearla, ves el siguiente mensaje de error:

Aparentemente, para placas más antiguas esto puede deberse a un problema térmico y si calientas un poco el microcontrolador (presionando con el pulgar), este error puede desaparecer. No puedo confirmar que esto funcione, ya que a mí no me funcionó.

De lo contrario, la recomendación es conectar A10 a tierra (G) y esto sí funcionó para mí. La imagen abajo muestra la conexión que debes hacer:

Connecting A11 to G to fix flashing problem
Conectar A11 a G para solucionar problema de flasheo

Si no quieres perder el pin A10 como GPIO para otros usos, puedes usar una resistencia pull-down de 10 KΩ y el pin A10 seguirá siendo usable y el flasheo funcionará.

Dispositivo objetivo no encontrado

Si ves el mensaje de error «Target Device not found» en el Monitor Serial, es porque olvidaste presionar los botones BOOT0 y NRST.

"Target Device not found" error in Serial Monitor
Error «Target Device not found» en Monitor Serial

Presiona y mantén «BOOT» y luego presiona y suelta «NRST». Esto pone la Black Pill en modo flasheo. Debes hacer esto cada vez que quieras descargar un programa en la Black Pill.

STM32CubeProgrammer no encontrado

Si ves el mensaje de error «STM32CubeProgrammer not found» en el Monitor Serial al intentar descargar un programa en la Black Pill, normalmente es porque el programa «STM32_Programmer_CLI.exe» no está en la ruta del sistema.

"STM32CubeProgrammer not found" error in Serial Monitor
Error «STM32CubeProgrammer not found» en Monitor Serial

En Windows ve a Configuración, busca «env» y haz clic en «Editar las variables de entorno del sistema» como se muestra abajo:

Settings for System Environment Variables
Configuración de variables de entorno del sistema

Esto abre un cuadro de diálogo donde puedes encontrar tus variables de entorno. Debes añadir la ruta al programa STM32_Programmer_CLI.exe a la variablePath. Selecciónala y haz clic enEdit..:

Dialog to edit Environment variables
Diálogo para editar variables de entorno

Luego presiona «Nuevo» para añadir la ruta al programa «STM32_Programmer_CLI.exe» a la lista. En mi caso es «C:\Maet\Software\STM32CubeProgrammer\Bin», como se muestra abajo. ¡Pero la tuya será diferente!

Adding path to STM32_Programmer_CLI.exe program to system path
Añadiendo ruta al programa STM32_Programmer_CLI.exe en la ruta del sistema

Puede que tengas que reiniciar tu ordenador para que esta actualización de la ruta del sistema tenga efecto. Pero después de eso el error no debería aparecer más.

Conclusiones

En este artículo aprendiste cómo programar la placa STM32 Black Pill con el Arduino IDE.

Si quieres saber cómo instalar placas para otros microcontroladores comunes en el Arduino IDE, echa un vistazo a Programming the Pico W5 with Arduino IDE, el How to Set Up a Raspberry Pi y el A Beginner’s Guide To ESP32 Programming tutoriales.

Si tienes alguna pregunta, no dudes en dejarla en la sección de comentarios.

¡Feliz bricolaje ; )