Experimentos simples con el microcontrolador STM32F103 (Blue Tablet)



Muchos han adquirido una "píldora azul" para probar. Pero debido a la complejidad de la programación, esto estuvo en algún lugar del estante, hasta tiempos mejores.

Consideraremos que han llegado los "mejores tiempos".

Lo que es necesario para los experimentos:


  • Hardware
  • Software

Hardware


Todas las piezas / componentes usados ​​se pueden comprar en aliexpress.com

  • Por supuesto, en primer lugar, el controlador en sí. "Blue Tablet"
  • Adaptador USB-UART
  • Cable micro usb
  • un conjunto de cables para conectar componentes entre sí

Se recomienda utilizar el programador ST-Link V2 para acelerar, en comparación con UART, la carga de "firmware" y la depuración de programas

Software



¿Qué es un módulo?


Un módulo es una combinación de hardware y software. La parte del hardware es la "tableta" STM32F103C8T6, la parte del software es la "plantilla de firmware" creada con el programa MIOC. Este programa es OpenSource .

Puertos de microcontrolador


El microcontrolador tiene pines o patas. Algunos de ellos son microcontroladores de energía, algunos tienen un propósito especial (por ejemplo, Restablecer), y algunos son de interfaz de entrada / salida de propósito general (GPIO).

Los puertos están agrupados (A; B; C ...). Cada grupo contiene hasta 16 puertos, numerados del 0 al 15. Como resultado, la numeración de puertos se ve como PA0, PA1, ...

Los puertos se utilizan para la comunicación entre los componentes del módulo, por ejemplo, un microprocesador y varios dispositivos periféricos. Los puertos pueden actuar como entrada, salida y bidireccional.

La placa de "tableta" está marcada con puertos.

GPIO - Interfaz de E / S de uso general


En el módulo IO, los principales tipos de puertos se presentan en la tabla:



Como sensores, actuadores usaremos varios dispositivos de Arduino.

Programa MIOC (Configurador de entrada-salida del módulo)


Con este programa, creamos / configuramos la plantilla de firmware (proyecto para Embitz; Keil) del módulo IO. El instalador no requiere. Descargar, ejecutar. Usando este programa, creamos variables globales que usaremos en nuestro firmware. Las variables se pueden asociar con los puertos.

Primera ventana de ejecución:



Crea un proyecto:



Seleccione una carpeta para el proyecto. Carpeta, para el proyecto debe estar vacío!







El primer programa - "hola palabra" para el microcontrolador


Parpadeamos el LED que está en la "píldora azul". Este LED está conectado al puerto PC13.

Agregar fila a la tabla variable





Generar código BSP (botón F8)



Además, cada vez que se cambia un proyecto, se requiere la generación de BSP.

Abra el proyecto creado en el entorno de desarrollo de EmBitz o Keil. EmBitz sigue siendo una solución alternativa. Parece que el autor abandonó este proyecto. Lo más probable es que en el futuro, el proyecto use Code :: Blocks.

En el archivo main.c, escriba lo siguiente:


(Para aumentar el tamaño de la imagen, ábrala en una pestaña nueva)

En EmBitz, presione F2, después de que aparezca la ventana de información, presione F7. La compilación debe hacerse.

Al presionar F2 nuevamente se ocultarán los marcadores de información.



Descargue en el microcontrolador, vea cómo funciona.

Botón


Agregue un botón, por ejemplo esto:



Diagrama de cableado:



Agregue una variable a la tabla:



Generamos BSP.

Cambie el programa a lo siguiente:



Creamos un nuevo BSP (F8), lo compilamos, lo cargamos en el microcontrolador.

Presionamos el botón (el LED se ilumina, lo liberamos) se apaga.

En lugar de un LED, se puede conectar un relé a otro puerto, por ejemplo:



Y administrar algún tipo de carga útil.

Enviar mensajes a la consola


Debes determinar cuál será la consola.

Las opciones son:

  • Adaptador USB-UART
  • puerto COM virtual (cable micro-USB)

Si tanto UART1 como USB como consola están seleccionados en la configuración, y USB VCP no está seleccionado, la consola no se asignará a ninguna parte. Es decir no habrá palabrotas en la función print_str (o la macro de impresión), pero tampoco habrá salida. El mismo comportamiento será si no selecciona ninguna interfaz, o selecciona USB VCP pero no selecciona UART1 o USB como consola.

Configuración de consola:



Conecte TettaTerm al puerto COM (consola). Si descargamos el firmware a través de UART1, no olvide desconectar / conectar el puerto COM. En TerraTerm "botones de acceso rápido" Alt + I; Alt + N Esto no es necesario para la opción de arranque a través de ST-Link.

Edite el programa:



Ahora el estado del botón se mostrará en la consola:



DS18B20


Conecte el sensor de temperatura DS18B20 a la "tableta".



Pon la variable en la tabla:



Cambie el programa a lo siguiente:



Creamos una nueva configuración, compilamos, cargamos en el microcontrolador.

La consola mostrará la temperatura medida por el sensor.



ADC


Como ejemplo de trabajo con el ADC, puede usar el potenciómetro:



O sensor de humedad del suelo



Detengámonos en el último:

Configure el puerto:



Edición del programa:



Compilamos, cargamos.

En la consola observamos:



adc - lectura actual de ADC. max y min: lecturas mínimas y máximas registradas del sensor, completamente secas (0%) y muy húmedas (100%).

Muy húmedo (100%): coloque el sensor en un vaso de agua. Muy seco (0%): se encuentra al aire libre.

De hecho, calibramos el sensor de humedad del suelo de 0 a 100%. Colocamos los valores máximos y mínimos en el texto del programa.



El resultado del trabajo. El sensor se coloca en el suelo de la maceta:



Este proyecto es una plantilla de solución para regar plantas.

Eso es todo por ahora. El programa MIOC se repondrá con características adicionales.

Source: https://habr.com/ru/post/466663/


All Articles