- Selección y descarga de las plataformas de desarrollo necesarias para las placas Nucleo64
- Diagrama de circuito y configuración del hardware
- Introducción a STM32CubeMX para placas de desarrollo STM32 Nucleo64
- Programación de la placa de desarrollo STM32 Nucleo64 usando TrueSTUDIO
- Programa STM32 Nucleo64 para controlar el LED mediante el botón pulsador
- Depuración y carga de código a la placa de desarrollo STM32 Necleo64 usando TrueSTUDIO
Muchos de nosotros deberíamos estar familiarizados con los populares microcontroladores y placas de desarrollo como Arduino, Raspberry Pi, ESP8266, NoduMCU, 8051, etc. De hecho, para la mayoría de las personas, Arduino habría sido su primera placa de desarrollo, pero a medida que profundizamos y comenzamos diseños profesionales, pronto nos daremos cuenta de las limitaciones de Arduino (como costo, versatilidad, estabilidad, velocidad, etc.) y entenderemos la necesidad de cambiar a una plataforma de microcontroladores más nativa como PIC, STM, Renesas, etc.
Ya hemos cubierto una secuencia de tutoriales de microcontroladores PIC, que guían a los principiantes en el aprendizaje de los microcontroladores PIC. Del mismo modo, a partir de este artículo, también planificaremos una secuencia de tutoriales de la placa de desarrollo STM32 Nucleo64 que pueden ayudar a los principiantes absolutos a aprender y desarrollarse utilizando la plataforma STM32. Las placas de desarrollo Nucleo64 son una plataforma de bajo costo y fácil de usar tanto para desarrolladores profesionales como para aficionados. Si es completamente nuevo en las placas de desarrollo STM32 Nucleo64, consulte este video de revisión de Nucleo64 para comprender los conceptos básicos de esta placa antes de continuar. El video también demuestra cómo programar STM32 usando la plataforma ARM Mbed pero para este tutorial, usaremos otra plataforma de uso gratuito de ST Microelectronics llamada TrueSTUDIO.
Nota: Hay muchas versiones de las placas de desarrollo STM32 Nucleo64, la placa particular que se utiliza en este tutorial es NUCLEO-F030R8. Hemos seleccionado esta placa principalmente por su bajo coste. Incluso, si tiene una versión diferente, la mayoría de las cosas discutidas en el tutorial serán suficientes para comenzar.
Selección y descarga de las plataformas de desarrollo necesarias para las placas Nucleo64
Comenzar con cualquier microcontrolador necesitará un IDE de programación como tenemos Arduino IDE para placas Arduino, Atmel Studio para microcontroladores AVR, MP Lab para PIC, etc. Así que aquí también necesitamos un IDE para nuestras placas STM32 Nucleo64 para realizar programación y depuración. La familia STM32 consta de microcontroladores de 32 bits que admiten los siguientes IDE y cadenas de herramientas:
- IAR Embedded Workbench® para ARM® (EWARM).
- MDK-ARM Keil
- TrueSTUDIO
- Banco de trabajo del sistema para STM32
Aquí para nuestros tutoriales, TrueSTUDIO se utilizará para escribir, compilar y depurar código porque se puede descargar y usar gratis incluso para proyectos comerciales sin ningún requisito de licencia. Luego, STM32CubeMX se utilizará para generar controladores periféricos para placas STM32 para facilitar la programación. Para cargar nuestro programa (archivo hexadecimal) en nuestra placa de desarrollo, la gente normalmente usa la herramienta de utilidad STM32 ST-LINK, pero en su lugar, usaremos TrueSTUDIO para hacer esto. TrueSTUDIO tiene un modo de depuración que permite a los programadores cargar el archivo hexadecimal directamente en la placa STM32. Tanto TrueSTUIO como STM32CubeMX son fáciles de descargar, simplemente siga el enlace a continuación, regístrese y descargue la configuración. Luego instálelos en su computadora portátil.
- Descarga STM32Cube MX
- Descarga TrueSTUDIO
Diagrama de circuito y configuración del hardware
Antes de continuar con la sección de software y la codificación, preparemos nuestra placa para este proyecto. Como se mencionó anteriormente en este artículo, vamos a controlar un LED usando un botón. Ahora, si ha visto el video vinculado anteriormente, ya debería saber que su placa de desarrollo STM32 tiene dos juegos de pines de conector a cada lado llamados pines ST Morpho. Hemos conectado un pulsador y un LED a estos pines como se muestra en el diagrama de circuito a continuación.
Las conexiones de circuitos son fáciles para este proyecto, necesitamos conectar un LED en PA5 de PORTA y un interruptor en PC13 de PORTC con respecto a GND. Una vez que se hicieron las conexiones, mi configuración de prueba se veía así.
Alternativamente, también podemos usar el LED incorporado y el botón pulsador en la placa. Estos LED incorporados y el botón pulsador también se conectan al mismo pin como se muestra en el diagrama del circuito. Hemos agregado componentes externos solo para la práctica. El siguiente diagrama de pines de la placa de desarrollo STM32 será útil para saber dónde están conectados cada uno de los pines morpho a bordo.
Introducción a STM32CubeMX para placas de desarrollo STM32 Nucleo64
Paso 1: Después de la instalación, inicie STM32CubeMX, luego seleccione el selector de placa de acceso para seleccionar la placa STM32.
Paso 2: Ahora busque el tablero por el nombre de su tablero STM32 como NUCLEO-F030R8 y haga clic en el tablero que se muestra en la imagen. Si tiene un tablero diferente, busque su nombre respectivo. El software admitirá todas las placas de desarrollo STM32 de ST Microelectronics.
Paso 3: Ahora haga clic en sí como se muestra en la imagen de abajo, para inicializar todos los periféricos en su modo predeterminado. Posteriormente podemos cambiar los requeridos según lo requiera nuestro proyecto.
Después de hacer clic en 'Sí', la pantalla será similar a la imagen de abajo y el pin de color verde indicando que se inician de forma predeterminada.
Paso 4: Ahora los usuarios pueden seleccionar la configuración deseada de las categorías. Aquí, en este tutorial, vamos a alternar un LED usando un botón. Por lo tanto, necesitamos hacer que el pin del LED sea la salida y el pin de conmutación como INPUT.
Puede seleccionar cualquier pin, pero estoy seleccionando PA5 y cambiando su estado a GPIO_Output para que funcione como un pin de salida como se muestra en la imagen de abajo.
De manera similar, estoy seleccionando PC13 como GPIO_Input para poder leer el estado de mi pulsador.
Alternativamente, también podemos configurar los pines desde la pestaña de configuración y distribución, como se muestra a continuación.
Paso 5: En el siguiente paso, el usuario puede configurar la frecuencia deseada para el microcontrolador y los pines de acuerdo con el oscilador externo e interno. De forma predeterminada, se selecciona un oscilador de cristal interno de 8 MHz y, al usar PLL, este 8 se convierte a 48MHz. Lo que significa que, por defecto, la placa STM32 o el microcontrolador y los pines funcionarán en 48MHz.
Paso 6: Ahora muévase al administrador de proyectos y asigne un nombre a su proyecto, la ubicación del proyecto y seleccione la cadena de herramientas o IDE. Aquí estamos usando TrueSTUDIO, por lo que he seleccionado lo mismo que se muestra a continuación.
Paso 7: Ahora haga clic en la marca Generar código junto al círculo rojo en la imagen de abajo.
Paso 8: Ahora verá una ventana emergente como se indica y luego haga clic en Abrir proyecto. Pero asegúrese de haber instalado TrueSTUDIO antes de este paso.
Programación de la placa de desarrollo STM32 Nucleo64 usando TrueSTUDIO
Ahora su código o proyecto se abrirá en TrueSTUDIO automáticamente si TrueSTUDIO solicita la ubicación del espacio de trabajo, luego proporcione una ubicación del espacio de trabajo o vaya con la ubicación predeterminada.
El usuario verá la pantalla que se muestra a continuación y luego deberá hacer clic en la marca de la esquina en color rojo.
Y ahora podemos ver el código en nuestro IDE TreuSTUDIO. En el lado izquierdo debajo de la carpeta 'src' podemos ver otros archivos de programa (con extensión.c) que ya se han generado para nosotros desde STM32Cube. Solo tenemos que programar el archivo main.c. Incluso en el archivo main.c ya tendremos algunas cosas configuradas por el CubeMX, solo tenemos que editarlo para que se adapte a nuestro programa. El código completo dentro del archivo main.c se encuentra al final de esta página.
Programa STM32 Nucleo64 para controlar el LED mediante el botón pulsador
Dado que todo el controlador y código requerido es generado por STM32CubeMX, solo tenemos que configurar un pin LED como salida y un pulsador como entrada. El programa para controlar el led mediante el pulsador debe estar escrito en el archivo main.c. El programa completo se puede encontrar al final de esta página. La explicación de esto es la siguiente
Solo tenemos código escrito para alternar el LED usando el pulsador. Para lograr esto, primero definimos pines para LED y pulsadores. Aquí hemos definido un LED en el número Pin 5 de PORTA
#define LED_PORT GPIOA #define LED_PIN GPIO_PIN_5
Y defina el interruptor en el Pin número 13 de PORTC.
#define SW_PORT GPIOC #define SW_PIN GPIO_PIN_13
Luego, en la función principal, hemos inicializado todos los periféricos utilizados.
/ * Inicializar todos los periféricos configurados * / MX_GPIO_Init (); MX_USART2_Init ();
Y luego lea el botón pulsador usando la declaración if y, si lo encuentra, presione (LOW), entonces el LED cambiará su estado.
Mientras (1) {/ * CÓDIGO DE USUARIO FINALIZA MIENTRAS * / If (! HAL_GPIO_ReadPin (SW_PORT, SW_PIN)) {HAL_GPIO_TogglePin (SW_PORT, LED_PIN); HAL_Delay (200); } / * CÓDIGO DE USUARIO COMIENZO 3 * /}
Aquí la función HAL_GPIO_ReadPin (SW_PORT, SW_PIN) tiene dos argumentos, uno es PORT y el otro es un pin en el que está conectado el interruptor y este pin se configura como INPUT mientras se configura el periférico en STM32CubeMX.
Depuración y carga de código a la placa de desarrollo STM32 Necleo64 usando TrueSTUDIO
Ahora conecte su placa a la computadora usando el cable del programador. Una vez que lo conecte, el controlador requerido para la placa debería descargarse automáticamente, puede verificar esto usando el administrador de dispositivos.
Luego, presione el icono de depuración marcado con el círculo rojo en la imagen que se muestra a continuación para compilar el programa y entrar en modo de depuración.
En el modo de depuración, el código se cargará automáticamente. Ahora necesitamos ejecutar el código presionando 'Reanudar' o F8 (marcado en el circuito rojo en la imagen de abajo).
Ahora podemos probar el control del LED presionando el botón pulsador. Según el código, el LED debería cambiar de estado cada vez que presione el botón. El trabajo completo también se puede encontrar en el video vinculado al final de esta página.
Después de la prueba, también podemos terminar el programa presionando el icono de terminar, marcado por el círculo rojo en la imagen de abajo.