Programar STM32: Instalar STM32CubeMX y generar un proyecto
Hace unos días me compré la placa de desarrollo Nucleo STM32F446RE de ST. Tenía ganas de comprarme una placa barata con la que poder investigar sobre freeRTOS, sistemas embebidos y practicar un poco de programación en C. Me decanté por una placa de ST por su precio, por las herramientas de desarrollo gratis, por la cantidad de placas compatibles, por su facilidad de depuración y por soportar freeRTOS. Además, ya tenía experiencia en el desarrollo de estas placas de mi bonita etapa en el B105. Todo esto, hizo de las placas STM32 Nucleo una solución perfecta.
Para empezar a desarrollar lo primero que tenemos que hacer es instalarnos la herramienta STM32CubeMX. Se trata de un entorno para generar proyectos de ST para cada una de los chips y placas de esta marca.
El primer paso para generar un proyecto es seleccionar el chip y placa de desarrollo queremos. Tenemos dos buscadores que nos facilitan la cosa.
Una vez hemos seleccionado nuestra placa nos aparecerá otra pantalla con varias secciones donde nos irán apareciendo todo lo que podemos configurar en nuestro chip. Por ejemplo, vamos a configurar el LED2 de esta placa que se encuentra conectado pin PA5. Para ello, dentro del tab de Pinout & Configuration, y en el dibujo del chip selecionamos el pin PA5 y se nos abre un desplegable en el que seleccionaremos GPIO_Output. A continuación haremos lo mismo pero para una entrada discreta, el botón conectado al pin PC13. En esta caso seleccionaremos la opción GPIO_EXT13 para configurarlo como una interrupción externa.
Por mi parte también he configurado freeRTOS, y quizás esto podría explicarse en un post aparte, pero por ahora conocer que podemos configurar nuestro proyecto sobre freeRTOS en la sección de Middlewares. En los próximos artículos se partirá de la base de esta configuración.
Otro de los aspectos importante, si no el que más, es la configuración de los relojes. Para comenzar y ver el potencial del STM32NucleMX vamos a configurar la placa con el máximo reloj posible simplemente escribiendo 180 en el recuadro que indica “To Power (Mhz)”. Así, Cube nos calcula todos los divisores, configuración del PLL y demás para tener la frecuencia deseada. Si por casual, existe algún error, Cube nos los mostrará en rojo y nos dirá cual es el fallo.
En el tab de Project Manager tenemos las opciones para general el proyecto, como el nombre, la carpeta donde se guardará y la Toolchain o IDE para el que se exportará. Lo puedes exportar para varios entornos como TrueStudio, EWARM para IAR o SW4STM32 para OpenSTM.
Una vez hayamos completado todas las opciones podremos dar al botón de generar el código y tendremos nuestro proyecto preparado. En los próximos días intentaré hacer varios ejemplos de lo más sencillo a algunas cosas más complejas, al igual que explicar temas de freeRTOS.