Frizzy ElectronicsFrizzy ElectronicsFrizzy ElectronicsFrizzy Electronics
  • Inicio
  • Blog
  • Contacto
  • Proyectos
  • Grape
  • Elemental Kit
  • Open-Source Hardware
    • Definición
    • Buenas prácticas

Empezando con el STM32F103C8T6: Programar un botón

Sin categoría

Autor:

davidEnds

  • mayo 21, 2018
  • 7:27 pm
  • One Comment

Tras la buena acogida que tuvieron los primeros tutoriales del STM32F103C8T6 estamos de vuelta con una nueva entrega, esta vez aprenderemos como configurar un pin como entrada para leer el estado de un botón.

Empezaremos por conocer un poco más a fondo el micro y su placa de desarrollo conocida en internet como “Blue Pill” por su color azul.

La placa consta de 40 pines repartidos en dos filas de 20 y 20 respectivamente. Tiene un factor de forma muy parecido al del Arduino Nano  pero ahí es donde terminan sus parecidos puesto que esta pequeña placa, con un coste de aproximadamente 3€, puede dejar a nuestro amado Arduino a la altura del betún. Aquí podéis ver algunas de sus características principales:

  • Microcontrolador: ARM® 32-bit Cortex®-M3 CPU Core
  • Frecuencia máxima: 72 MHz
  • Memoria Flash: 64 KB
  • Memoria SRAM: 20KB
  • Cristal de entre 4 y 16 MHz
  • 10 entradas analógicas de 12 bits
  • RTC integrado
  • 26 pines I/O
  • 26 Interrupciones
  • 2 x I2C
  • 3 x USART
  • 2 x SPI
  • CAN
  • 7 Temporizadores

Si quieres profundizar en su conocimiento aquí te dejamos el datasheet y el esquema de la placa

Despues de conocer un poquito más sobre esta placa, pasemos a materia. Abrimos el configurador de plantillas STMCubeMX y crearemos un nuevo proyecto en “New Project”. Con la ayuda de los filtros buscaremos nuestro microcontrolador, el STM32F103C8Tx:

 

Una vez le encontremos presionaremos Start Project, también os invito a que indaguéis por el selector de placas y de micros para conocer un poco más sobre la familia STM32, podéis filtrar incluso por precio.

Una vez en la pantalla de configuración, haremos click en el pin PC13 exactamente igual que hicimos en el anterior tutorial y lo pondremos en modo GPIO_Output. Le asignaremos una etiqueta haciendo click derecho y la llamaremos Ld2.

Después, seleccionaremos el pin PB15, y lo pondremos como GPIO_Input. Le asignaremos la etiqueta Bt1 y quedaría algo así:

Después vamos a Project y a Settings e introduciremos esta configuración:

Guardaremos con OK y generaremos la plantilla con Project/Generate Code. Nos saldrá una ventana y clicaremos en Open Project y se nos abrirá el uVision para poder programarlo.

 

Buscaremos el while(1) e introduciremos el siguiente código:

Ahora vamos a configurar el flasheo de la placa. Vamos a Flash>Configure Flash Tools y lo configuraremos de la siguiente manera:

Hacemos click en OK. Daremos al botón de Build (F7) y se nos generará un .hex

Ya tenemos terminado nuestro código! Ahora solo tenemos que cargarlo en la placa. Para ello realizaremos la misma conexión que en el post anterior (enlace) con el conversor USB-UART.

Montaremos un circuito muy sencillo con un botón y su correspondiente resistencia pull-up. No olvides que esta placa tiene los estados lógicos de 3.3 por lo que no alimentes tu circuito con 5V o lo quemaras.

 

Una vez montado, abriremos el DEMONSTRATOR GUI. Seleccionaremos el puerto donde tenemos conectado el conversor, presionaremos el botón de Reset y haremos click en siguiente.

Si tenemos el jumper BOOT0 en la posición 3.3 y hemos presionado el botón enter no nos saldrá ningún error y nos aparecerá el semáforo en verde.

No tocaremos nada en esta pantalla y daremos a siguiente:

Seleccionaremos Download to device y buscaremos el .hex que generamos con el uVision.

Haremos click en next y subiremos el código a la placa:

Y ya tendremos nuestro STM32 funcionando! No olvides volver a poner el jumper BOOT0 en 0 para que al apagar la placa y volver a encenderla corra el programa.

 

 

1 comment

  • Daniel Responder 22 mayo, 2018 at 11:13 am

    Compré esta placa creyendo que era similar a un arduino, pero no tiene nada que ver. Además, la información que encuentras por internet para usarla es muy escasa… ¡muchas gracias por la entrada! Me ha ayudado mucho.

Leave a Comment

Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Más entradas:

AnteriorComo asignar un modelo 3D a un footprint en KiCad
SiguienteEmpezando con el STM32F103C8T6: Arduino IDE
Copyright © 2018 Frizzy Electronics |
  • Inicio
  • Blog
  • Contacto
  • Proyectos
  • Grape
  • Elemental Kit
  • Open-Source Hardware
    • Definición
    • Buenas prácticas
Frizzy Electronics