Pisca Led com microcontrolador Stm32f103c8 keil e Stmcubemx

Intermitente led con llave Stm32f103c8 y microcontrolador Stmcubemx

Después de trabajar mucho con microcontroladores de 8 bits y aprender todos los protocolos y funciones que ofrecen, pensé en cambiarme a microcontroladores de 32 bits. Decidí optar por procesadores ARM de 32 bits debido a su popularidad en el mercado. Elijo la serie de procesadores ARM Cortex-M3 para mis nuevos proyectos de pasatiempo/aprendizaje. La razón detrás de elegir la serie ARM Cortex-M3 es que los procesadores Cortex-M3 están diseñados especialmente para aplicaciones integradas conectadas, y los microcontroladores construidos con esta serie se utilizan en muchos proyectos/aplicaciones/productos integrados de nivel medio. Después de tanto buscar en Google, finalmente tomé la decisión de seguir adelante con los microcontroladores stm32. Stm32 es una familia de microcontroladores de 32 bits ofrecida por STMicroelectronics. Los microcontroladores Stm32 están construidos alrededor de los procesadores Cortex-M7 , Cortex-M4F , Cortex-M3 , Cortex-M0+ y Cortex-M0 .

Después de decidirme a usar stm32, comencé a hacer tutoriales iniciales sobre cómo comenzar con stm32. Encontré mucha información sobre cómo empezar, pero ninguna está bien organizada. Entonces decidí hacer una serie de tutoriales sobre cómo empezar a usar microcontroladores stm32. A lo largo de esta serie, analizaré todos los protocolos/funciones que ofrecen los microcontroladores stm32. Presentaré un ejemplo práctico de protocolo/interfaz/función sencillo con código fuente y diagrama de circuito.

Hay muchos IDE (entornos de desarrollo integrados) que admiten la serie stm32 y puede usar cualquiera de ellos para programar su microcontrolador stm32. Algunos Ide son Coocox, keil, mBed, Attolic, microC para Arm. Decido usar keil y stm32CubeMx. Keil ofrece un conocimiento profundo del microcontrolador y su interfaz. Si no quieres profundizar y quieres pan comido, elige MikroElectronica microC para Arm. Es muy fácil trabajar con microC ide, tiene muchos ejemplos y bibliotecas, solo necesitas llamar a las funciones y todo está hecho. Stm32CubeMx es un configurador de periféricos de microcontrolador. Cuando usa stm32cube, no necesita escribir el código de configuración para su microcontrolador stm32. Es una plataforma visual donde puede hacer que los pines del microcontrolador se muevan hacia adentro y hacia afuera, habilitar pull-ups y pull-downs, puede configurar visualmente la frecuencia de operación del microcontrolador y mucho más. Después de la configuración visual podrás generar el código para la configuración que realizaste. Prefiero trabajar con stmCube porque STMicroelectronics lo proporciona oficialmente y es bueno trabajar con el material proporcionado por el propietario.

Nota : Stm32CubeMx no es un Ide, es un administrador de configuración. Configura su microcontrolador stm32 en él y luego genera el código de configuración que creó para usarlo con cualquier otro IDE. Puede generar directamente el proyecto keil ide con stmCubeMx seleccionando la opción stmCubeMx para traducir la configuración al proyecto keil ide.

Instalación de StmCubeMx y Keil MDK ARM

Instalar Keil Ide es bastante sencillo. Descargue el kit MDK ARM que contiene keil Ide; no necesita el ide para instalarlo por separado. Simplemente descargue el archivo desde el enlace e instale el ide. Arm mdk está disponible en muchas ediciones, la última es mdk5. Estoy usando mdk5 para mis proyectos y este tutorial también se basa en mdk5 y keil uvision-5 ide.
Instalar StmCubeMx también es sencillo. Descargue StmCube desde el enlace Es posible que se le solicite iniciar sesión. Inicia sesión y serás suyo. Una vez instalado StmCubeMx, deberás instalar los paquetes para cada serie o serie stm32 con la que quieras trabajar. Los paquetes de las series StmCubeMx y stm32 son dos cosas diferentes. El paquete para cada serie STM32 debe instalarse por separado. También es una opción en el software StmCubeMx que instala los paquetes de la serie. Está en Ayuda > Instalar nuevas bibliotecas. Como comenzamos con stm32f103, necesitamos instalar el paquete para la serie stm32f1. El siguiente diagrama explica bien cómo instalar los paquetes.

Instalación de controladores/paquetes stm32f103 para StmCubeMx

Instalación de controladores/paquetes stm32f1 para StmCubeMx
Compré un módulo stm32f103c8x barato en aliexpress. Me costó alrededor de $4,5 con envío gratis a Pakistán. El envío tardó casi 1,5 meses y 45 días. La placa es genial y ofrece casi todas las funciones necesarias para comenzar a usar microcontroladores stm32. El pin del tablero se muestra a continuación.

Características y pines de la placa de desarrollo Stm32f103 económicos ofrecidos

Características y pines de la placa de desarrollo Stm32f103 económicos ofrecidos

Intermitente LED con llave stm32f103 y stmcubemx

El módulo superior tiene un LED conectado al pin no 13 del puerto c. Para empezar, parpadeemos. Los pines del microcontrolador Stm32 ofrecen múltiples funciones en un solo pin. La selección de uno y la desactivación de otros se deben realizar con cuidado. Los pines de E/S de los microcontroladores Stm32 se pueden utilizar en cinco modos

  • Modo de entrada
  • Modo analógico
  • Modo de salida
  • Modo de función alternativa
  • Líneas externas de interrupción/evento

Para nuestro propósito, usaremos el pin 13 del puerto c como salida. Casi todos los pines stm32 tienen resistencias internas de subida y bajada. Como no usamos gpio en modo de entrada, no usamos resistencias de subida y bajada. Los pines Stm32 pueden funcionar a diferentes frecuencias, operemos el pin a baja frecuencia. Los pines Stm32 también se pueden inicializar en nivel bajo o alto después de la inicialización. Coloqué el pin n.° 13 en la parte baja.

Nota: Usaré el oscilador RC interno de 8Mhz del microcontrolador. La placa superior tiene un cristal externo de 8Mhz pero no lo usaré. En tutoriales posteriores lo usaremos.

Creando nuevo proyecto en StmCubeMx

Crear un nuevo proyecto es simple. Vaya a Archivo > Nuevo proyecto. Aparecerá una ventana para seleccionar la serie del microcontrolador, líneas de serie y paquete. Después de seleccionar el paquete, haga clic en el microcontrolador que está utilizando para su proyecto. En nuestro caso es STM32f103C8Tx.

StmCubeMx creando nuevo proyecto

StmCubeMx creando nuevo proyecto
Después de seleccionar el microcontrolador stm32f103c8, aparecerá una ventana que contiene el diagrama de mcu. Haga clic en el pin n.° 13 y configure gpio como salida.

StmCubeMx Seleccionando el microcontrolador gpio stm32f103c8 como salida

StmCubeMx Seleccionando el microcontrolador gpio stm32f103c8 como salida
Para configurar GPIO, haga clic en la pestaña de configuración y luego en el botón GPIO.

Configurando gpio de stm32f103 en stmcubemx

Configurando gpio de stm32f103 en stmcubemx
Haga clic en los nombres de los pines para que aparezca su configuración. En la ventana de configuración, configure el modo gpio, el nivel de salida, la velocidad del reloj y asigne un nombre al gpio. Presione Aplicar para aplicar los cambios.

Configuración de Stmcube Gpio

Configuración de Stmcube Gpio
El nombre que le dimos al pin ahora aparece en él. Podemos usar gpio en el código con este nombre. Ahora es el momento de generar el código. Haga clic en el ícono de ajustes para generar código.

nombre de stmcubemx gpio cambiado y generando código

nombre de stmcubemx gpio cambiado y generando código
Aparece una ventana después de hacer clic en el ícono de ajustes. Asigne un nombre al proyecto y seleccione la ubicación de los archivos del proyecto. Como estamos usando MDK-ARM V5, en ToolChain/IDE seleccione mdk-arm. Haga clic en Aceptar para generar el código.

Localización de proyectos stmcube y generación de código keil.

Localización de proyectos stmcube y generación de código keil.
Haga clic en Aceptar después de que se generen todas las configuraciones y códigos en la ubicación que especificó. Aparecerán cuatro carpetas en la ubicación. MDK-ARM contiene el código keil ide. Los archivos del proyecto stmcubemx también están presentes en la ubicación. El archivo de extensión ico es stmcubemx. Abra la carpeta MDK-ARM que contiene algún archivo. El archivo con extensión .uvprojx es un archivo keil ide. Ahora puede abrir el archivo para realizar más cambios en el código.

archivos ide stmcube y keil

archivos ide stmcube y keil
Código de traducción StmCubeMx que contiene las funciones de la biblioteca HAL. HAL son bibliotecas publicadas por stm para funcionar con sus microcontroladores. Las funciones de las bibliotecas HAL y su hoja de datos de definición están disponibles en el manual de usuario, dado que el archivo de 19 MB es en realidad el documento explicativo de la definición de funciones de las bibliotecas HAL . El código generado por stmcubemx tiene las instrucciones que se enumeran a continuación. Escribo el significado de cada afirmación con él.
Para hacer parpadear el LED, agregue las líneas a la función while vacía. Recuerde que stmcube solo genera el código de configuración. Tenemos que escribir nuestra lógica nosotros mismos. Por lo tanto, en la función while(1) agregue la función de alternancia.
​HAL_GPIO_TogglePin(Led_GPIO_Port,Led_Pin);
HAL_Delay(1000);

Código LED intermitente Stm32

Código LED intermitente Stm32

Actualizar código para el microcontrolador stm32

Como la placa de desarrollo no tiene un programador integrado, utilicé un programador St Link externo para cargar el código en la placa. Para enviar el código debes realizar algunos ajustes en keil. Siga los pasos a continuación para cargar el código.

Keil carga código a la placa de desarrollo stm32 usando el depurador stlink

Keil carga código a la placa de desarrollo stm32 usando el depurador stlink
Nota: Después de enviar el código, presione el botón de reinicio en el tablero. El código no funcionará a menos que reinicie el tablero presionando el botón de reinicio.
Archivos de proyecto/carpeta de código

Conteúdo Relacionado

En cada vehículo hay una red de sensores integrada...
El controlador del motor es uno de los componentes...
ESP32-CAM es un módulo de cámara compacto que combina...
La evolución de los estándares USB ha sido fundamental...
SCHURTER anuncia una mejora de su popular serie SWZ...
Visual Communications Company (VCC) ha anunciado sus nuevos tubos...
A Sealevel Systems anuncia o lançamento da Interface Serial...
A STMicroelectronics introduziu Diodos retificadores Schottky de trincheira de...
Determinar uma localização precisa é necessário em várias indústrias...
O novo VIPerGaN50 da STMicroelectronics simplifica a construção de...
A Samsung Electronics, fornecedora de tecnologia de memória avançada,...
O mercado embarcado tem uma necessidade de soluções de...
Probablemente se haya encontrado con el término " resistencia...
Probablemente tenga un aislante de soporte si ha notado...
Probablemente haya visto un aislante colocado en postes de...
Probablemente hayas visto aisladores de grillete entronizados en postes...
Probablemente hayas experimentado situaciones en las que controlar un...
Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.