En esta oportunidad vamos a ver como programar STM32 con el IDE de Arduino, para lo cual usaremos los dos modelos de tarjeta STM32F103C8T6 denominadas Blue pill y black pill


Para esto lo  primero es preparar IDE de Arduino, para lo cual vamos a agregar tarjeta stm32 para que lo reconozca el IDE de Arduino

Lo primero que debemos hacer es  abrir el IDE de Arduino, nos dirigimos al gestor de placas(herramientas /Placa /gestor de tarjetas), y añadimos el soporte para placas SAMD

Lo siguiente será ir a menú archivo, preferencias y en el Gestor de URLs adicionales de Tarjetas copiamos la siguiente dirección.


http://dan.drown.org/stm32duino/package_STM32duino_index.json


Volvemos al gestor de placas, y tendremos disponibles las placas STM32. Instalamos las que necesitemos. En particular, para la (STM32F103C8T6) vamos a necesitar las STM32F1X.

 


luego para las conexiones veremos la disposición de los pines de los dos modelos del stm32

PROGRAMACION CON EL CONVERSOR  USB-TTL


Con el bootloader por defecto el STM32 tiene dos modos de arranque que dependen del estado del pin BOOT0.

 


BOOT 0
MODO
LOW
Arranque normal ejecutara el ultimo programa cargado.
HIGHmodo de programación, espera un programa por UART (3.3v) cuando lo recibe lo graba en la memoria flash.

Colocamos el jumper en la posición HIGH o sea modo de  programación UART-TTL, luego  pasamos a configurar el ejemplo en el IDE de Arduino

y luego conectamos el conversor USB-TTL   al  ordenador y  seleccionamos la placa.


NOTA: es importante recalcar que el conversor USB-TTL debe estar configurado para trabajar con 3.3v además de haber instalado los drivers del conversor para que la computadora lo reconozca.


y luego configuramos los diguien tes parametros

Además  en puerto hay que seleccionar el puerto COM  generado por el conversor USB-TTL

para probar en el IDE de Arduino  podemos copiar el siguiente ejemplo y subirlo ala tarjeta,

los pines donde esta el led en las dos tarjetas es diferente por lo cual dependiendo de que tarjeta estén usando deberan modificar la ´primera linea del código



//const int ledPIN = PB12; // para la tarjeta black pill(tarjeta de color negro)
const int ledPIN = PC13;  // para la tarjeta blue pill(tarjeta de color azul)

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

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

NOTA: es importante que para que comience a funcionar después de cargar el programa  debemos poner el el jumper de BOOT 0 a la posición LOW y con eso estaría listo para funcionar.


PROGRAMAR USANDO EL PROGRAMADOR ST-LINK(clon)

lo primero es descargar el driver de la pagina de ST e instalarlo, luego lo conectamosy nos aseguramos que  el sistema lo reconoce correctamente


st-linkstm32
SWDIO
DIO
SWCLKCLK
3.3V3.3
GNDGND


La configuración de los pines puede cambiar dependiendo del modelo por lo cual en necesario que lo verifique.

Luego en Arduino configuramos lo siguiente

Respecto al jumper boot0 no es necesario cambiarlo al programar (BOOT0:LOW)´por lo que puede estar en la misma posición