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

Juego de cables Dupont

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»:

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

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:

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»:

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:

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

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

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:

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:

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

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:

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»:

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:

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:

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.

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.

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

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

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!

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 ; )

