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 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.
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
HAL_GPIO_TogglePin(Led_GPIO_Port,Led_Pin);
HAL_Delay(1000);
Actualizar código para el microcontrolador stm32
Archivos de proyecto/carpeta de código
|