STM32L476R Inicio rápido: preparación preliminar (temas de diseño de proyectos)

STM32L476R Inicio rápido: preparación preliminar

Estoy estudiando en una escuela de electrónica 211 en el noroeste de China, y me encontré con STM32L476R porque la universidad abrió el curso "Diseño de proyectos de microcontroladores". Este artículo presentará el conocimiento de STM32 que debe usarse en toda la fase de diseño del proyecto a partir de los siguientes aspectos, y publicaré todo mi código en GitHub, y llevaré a todos a familiarizarse con STM32L476R y completar un "Tic-Tac-Toe" El diseño de un robot con interacción física. A continuación se muestra mi conexión al repositorio de GitHub (si está interesado, también los enlaces Star, Watch, Fork)

1. Idioma compilado

Solo he usado Arduino antes y casi no estoy familiarizado con STM32. La primera sensación cuando entré en contacto por primera vez con L476R fue completamente confusa. Debido a que había enseñado el curso de "Principio de microcomputadora" antes del primer año, el ejemplo de "microcomputadora" que se usó en él fue STM32, por lo que mi primera reacción en ese momento fue si este L476R debería estar escrito en lenguaje ensamblador o C.

Una ventaja del lenguaje ensamblador es que el Sr. Jiang Guang dejó muy claro en ese momento que la interrupción, el puerto serial y el diseño del temporizador se pueden reutilizar directamente en proyectos de primer año. Y nunca antes había usado STM32, por lo que puedo reutilizar el código, lo que también es una gran ventaja. Sin embargo, el lenguaje ensamblador sigue siendo demasiado bueno (principalmente debido a la mala legibilidad y el uso inconveniente del código del tipo grande).

L476R tiene una característica muy sorprendente, es decir, puede usar directamente la biblioteca Arduino y el método de compilación para grabar, y también proporciona el documento de interfaz oficial correspondiente. Sin embargo, el número de puertos correspondientes es limitado, solo las dos filas de puertos hembra en el lado interior.
Inserte la descripción de la imagen aquí
Si usa el método de compilación STM32, puede llamar a todas las interfaces. Dado que mi diseño final requiere más interfaces, no elegí el método de desarrollo Arduino, y el método de desarrollo oficial de STM32 será el método principal a continuación.

En segundo lugar, el compilador

Así es como desarrollé el compilador en línea Mbed OS. La razón principal es la pereza: ya no quiero instalar Keil. La URL de Mbed es la siguiente: Mbed OS

Aquí, primero debe registrar una cuenta y luego hacer clic en Cumplidor en la esquina superior derecha para ingresar a la interfaz de compilación.

Tres, método de conexión

Puede usar directamente la interfaz mini USB para la fuente de alimentación y la grabación. No recomiendo la grabación y la fuente de alimentación del puerto serie (TX0, RX0), porque esta placa tiene algunos problemas, por lo que es fácil de quemar.

Cuatro, definición de interfaz

Se puede decir que la definición de interfaz en la primera imagen de este artículo es una imagen nueva, principalmente debido a la redefinición del puerto serie. En primer lugar, si está utilizando el método de compilación arduino, entonces la definición de su interfaz es A0-A5, D0-D15. La definición del botón azul que viene con STM32 es USER_BUTTON. Mucha gente puede preguntarse por qué está escrito Analog In en los puertos etiquetados como A0-A5. Estas son estas interfaces, que pueden aceptar entrada analógica.

Todas las interfaces de L476R admiten entrada / salida digital, es decir, salida de bajo nivel (entrada) "0 V", salida de alto nivel (entrada) "3,3 V". Pero solo algunas interfaces admiten entrada analógica, por lo que las interfaces A0-A5 admiten entrada analógica. La ventaja de esto es que puedes comprar una salida analógica GP2Y0A21YK0F como sensor de distancia cuando no entiendes cómo usar el sensor de distancia emitido por la escuela. La interfaz A2 también define Analog Out, es decir, no solo admite la salida binaria de 0 V y 3,3 V, sino que también admite la salida de rango analógico de [0,3,3] V.

A0 y A1 también están marcados con Serial 4 TX (RX), lo que significa que estas dos interfaces también se pueden utilizar como entrada y salida en serie. Entonces este "4" indica que es el cuarto puerto serie. Al habilitarlo, el puerto serie 4 debe estar habilitado antes de que se pueda utilizar esta interfaz.

D14 y D15 también están marcados con I²C SCL (SDA), lo que significa que estas dos interfaces pueden utilizar la comunicación I²C. El módulo de sensor de reconocimiento de color TCS34725 y el módulo de sensor de rango óptico VL6180X que la escuela emitió un poco difícil de usar, ambos requieren comunicación I²C para leer datos.

Las otras anotaciones son algunas funciones adicionales, no las he usado, así que no las presentaré. También puede ver una fila de enchufes marcados con CN6 en el interior No hay una definición de interfaz requerida, pero GND, + 5V, etc. están escritos. Esto significa que estas interfaces tienen un voltaje de salida fijo de + 5V o 0V (GND).

Si utiliza el método de compilación STM32, no se recomienda utilizar la etiqueta de interfaz verde para definir la interfaz, sino utilizar la etiqueta azul para definir la interfaz. En otras palabras, use PA_0 en lugar de A0 y otras interfaces.

Cinco, usa atención

Este L476R es muy fácil de quemar , por lo que se recomienda que un grupo adinerado compre más repuestos .

Quemé Flash en ese momento, y fue una semana antes de la aceptación, así que fue muy incómodo. Algunos grupos fumaban directamente y GG por completo. Al menos escuché que al menos 7 grupos carecían de L476R, y un grupo incluso quemó dos (demasiado miserable).

Es mejor no utilizar el puerto serie en el encabezado del pin para la comunicación y la programación , porque es fácil quemar la placa. Al usar, todos los dispositivos incluyen: STM32L476R, FPGA, computadora host, todos los sensores, ¡todos los motores deben compartir la misma tierra! ¡Debe compartir tierra! ¡Debe compartir tierra! Debido a que la salida digital es alta y baja en relación con su propio GND, si no hay un terreno común, puede suceder que el nivel bajo de una salida sea más alto que el nivel alto de la otra, provocando errores de lectura de datos. Método de tierra común: conecte el GND de todos los dispositivos juntos.

Supongo que te gusta

Origin blog.csdn.net/yikuanglancheng/article/details/105403725
Recomendado
Clasificación