STM32L476R y lámpara de agua de arranque rápido Mbed (mbed)

Este año, debido al impacto de la epidemia, el curso de diseño del proyecto ancestral de la escuela puede ser pospuesto. Sin embargo, el ritmo del diseño del proyecto en años anteriores fue muy ajustado, según el programa de inspección semanal, solo se pudo completar justo a tiempo y casi no hubo tiempo de depuración.

En la actualidad, la actualización de CSDN es relativamente lenta, y Zhihu se ha interrumpido, por lo que si estás interesado, puedes pasar a conocer

Conté, esta semana debería ser la sexta semana , y si de acuerdo con el punto de vista del cronograma anterior, debería haber completado el diseño de la perspectiva externa , el diseño web, el diseño del cartel y el video , y puede usar el servomotor FPGA , puntos de éxito Encienda la lámpara de agua y dibuje el diseño mecánico de más alto nivel de su dibujo de trabajo , sí, hay tres vistas, que realiza la comunicación entre FPGA y STM32, y puede usar I²C para leer los datos del sensor de color y el sensor de distancia.

Como el arrastre anterior fue más grave, hoy repongo el contenido de inspección de la tercera semana: encender la lámpara de agua . Aquellos que ya hayan obtenido la lámpara de agua corriente pueden omitirla directamente.

Primero ingrese la URL: https://os.mbed.com/ para ingresar mbed os para la compilación en línea.

Crea un nuevo proyecto:

Haga clic con el botón derecho en Mis programas y luego seleccione Nuevo programa Aparece un cuadro de diálogo que le solicita agregar una plataforma de placa de desarrollo.

Inserte la descripción de la imagen aquí
Haga clic en el botón Agregar plataforma, aparecerá una página web y se enumerarán todas las placas de desarrollo que admiten mbed. Seleccione la placa de desarrollo NUCLEO-L476RG requerida de ST y haga clic hacia abajo.
Inserte la descripción de la imagen aquí
Aparecerá una introducción detallada de la placa de desarrollo correspondiente, haga clic en el botón Agregar a su compilador Mbed a la derecha.
Inserte la descripción de la imagen aquí
Abra el compilador nuevamente, la placa de desarrollo que se utilizará se ha agregado al IDE.
Inserte la descripción de la imagen aquí
2. En el menú desplegable Plantilla, seleccione Prueba de LED intermitente para las placas ST Nucleo y luego haga clic en el botón Aceptar.

Inserte la descripción de la imagen aquí
3. La nueva carpeta del programa se creará en el directorio Mis programas, haga doble clic para abrir el archivo main.cpp
Inserte la descripción de la imagen aquí
4. Veamos ahora el significado de cada línea de código.

Primero #incluya "mbed.h"

Este "mbed.h" puede entenderse como el "stdio.h" que se usa a menudo en el primer año es un archivo de encabezado como import. Es solo que contiene no solo printf y scanf, sino también muchas instrucciones de operación del microcontrolador. Por ejemplo, la siguiente línea:

DigitalOut myled (LED1);

DigitalOut A (B) es un comando especial, su significado es establecer el puerto B **** en salida digital (0-1) (hasta cierto punto, también se da cuenta de la función de bool A , que es definir Una variable booleana A ) y el puerto B se llama A. De esta manera, cuando llame al puerto B en el futuro, puede usar A directamente para llamar, lo que mejora la legibilidad del programa. El significado aquí es definir el puerto LED1 como "myled" , y este puerto solo puede generar un nivel alto (3.3v) o bajo (0v).

Entendamos el programa principal frase por frase.

int main() {
    
    
    while(1) {
    
    
        myled = !myled; // LED is ON
        wait(0.8); // 800 ms
    }
}

Int main naturalmente significa ingresar al programa principal. Quizás el blanco novato más confuso aquí es la existencia de while (1), porque entrará en un ciclo infinito, y en la clase de lenguaje C de primer año, casi nunca usó un ciclo infinito, así que ¿por qué usar uno aquí Bucle infinito.

De hecho, es muy simple. Definitivamente queremos seguir haciendo parpadear la luz del agua una vez que el STM32 esté encendido, y se detendrá después de apagar la alimentación. La función de while (1) es asegurar que la lámpara de agua siga parpadeando.

Hemos definido previamente que myled es el valor del puerto LED1, y es una variable booleana. Las variables booleanas se niegan a sí mismas y la alternancia 0-1 se realiza naturalmente. Y 0 y 1, respectivamente, corresponden a niveles altos y bajos, lo que naturalmente se da cuenta del encendido y apagado de las luces LED.

wait (t) es una instrucción de retardo , puede entender que debe retardar t segundos antes de que el sistema ejecute la siguiente instrucción, es decir, ingrese al ciclo nuevamente y ejecute myled =! myled. Ajuste el tamaño de t, puede controlar la frecuencia de parpadeo del LED, cuanto menor sea la t, mayor será la frecuencia de parpadeo.

Cuando terminemos de escribir, haga clic en la compilación anterior y el
Inserte la descripción de la imagen aquí
sistema guardará automáticamente el contenido de su programa y descargará un archivo .bin automáticamente. Conecte STM32L476R, la computadora mostrará un disco extraíble grande, no entiende nada, simplemente arrastre el archivo .bin en él. Luego, el disco extraíble se expulsará. Haga clic en el botón RESET negro en el tablero, puede observar el efecto de la lámpara de agua.

Supongo que te gusta

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