Tabla de contenido:
- Paso 1: requisitos de software y hardware
- Paso 2: Configuración de STM32CubeMX
- Paso 3: Desarrollo de software de Keil
- Paso 4: Desarrollo de software Python
- Paso 5: Conclusión
Video: STM32F4 Discovery Board y Python USART Communication (STM32CubeMx): 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
¡Hola! En este tutorial intentaremos establecer la comunicación USART entre STM32F4 ARM MCU y Python (puede ser reemplazado por cualquier otro lenguaje). Entonces empecemos:)
Paso 1: requisitos de software y hardware
En términos de hardware, necesita:
- Placa de descubrimiento STM32F4 (o cualquier otra placa STM32)
- Convertidor de USB a TTL
En términos de software:
- STM32CubeMX
- Keil uVision5
- Python con biblioteca serial instalada
Paso 2: Configuración de STM32CubeMX
Primero entendamos lo que queremos hacer. Queremos transmitir datos a la placa desde Python a través de USART y verificar si tenemos los datos correctos y el led de alternancia. Entonces, necesitamos habilitar USART y Led.
-
Habilite USART2 desde la pestaña Conectividad.
- Cambiar el modo a Asíncrono
- Tasa de baudios a 9600 Bits / s
- Longitud de palabra a 8 bits sin paridad
- Sin bit de paridad
- Desde la configuración de DMA, agregue USART2_RX en modo circular
- Desde la configuración de NVIC, habilite la interrupción global de USART2
- Habilite el LED haciendo clic en PD12
Luego genera código:)
Paso 3: Desarrollo de software de Keil
#incluir
#incluir
Estas bibliotecas serán necesarias en las operaciones de cadenas y para definir la variable booleana.
/ * CÓDIGO DE USUARIO COMIENZO 2 * / HAL_UART_Receive_DMA (& huart2, (uint8_t *) data_buffer, 1); / * CÓDIGO DE USUARIO FIN 2 * /
Aquí, comenzó la recepción UART con DMA.
/ * CÓDIGO DE USUARIO COMIENZO 4 * / void HAL_UART_RxCpltCallback (UART_HandleTypeDef * huart) {/ * Evita la advertencia de compilación de argumentos no utilizados * / UNUSED (huart); / * NOTA: Esta función no debe modificarse, cuando se necesita la devolución de llamada, la HAL_UART_RxCpltCallback podría implementarse en el archivo de usuario * / if (data_buffer [0]! = '\ N') {data_full [index_] = data_buffer [0]; índice _ ++; } más {index_ = 0; terminado = 1; } // HAL_UART_Transmit (& huart2, data_buffer, 1, 10); } / * CÓDIGO DE USUARIO FIN 4 * /
Este es el ISR que se activa cuando obtenemos un byte de carácter. Entonces. obtenemos ese byte y lo escribimos en data_full que contiene todos los datos recibidos hasta que obtenemos '\ n'. Cuando obtenemos '\ n', hacemos la bandera de terminado 1 y en el bucle while:
while (1) {/ * CÓDIGO DE USUARIO END WHILE * / if (terminado) {if (strcmp (data_full, cmp_) == 0) {HAL_GPIO_TogglePin (GPIOD, GPIO_PIN_12); } memset (data_full, '\ 0', strlen (data_full)); terminado = 0; } más {_NOP (); } / * CÓDIGO DE USUARIO COMIENZO 3 * /}
Si la bandera de terminado es ALTA, comparamos el contenido de los datos recibidos completos y los datos que deseamos y, si son iguales, cambiamos el led. Después de eso, borramos la bandera de terminado y esperamos nuevos datos y también borramos la matriz data_full para no sobrescribir la matriz.
Paso 4: Desarrollo de software Python
Entonces, aquí queremos enviar nuestro número con '/ n' al final, porque el software Keil necesitará verlo para saber el final.
importar serial
ser = serial. Serial ('COM17') # verifique ese puerto en su dispositivo desde el Administrador de dispositivos
ser.write (b'24 / n ')
Debería ver que el LED cambia cada vez que envía '24 / n '. Si envía algo más, no debería afectarlo.
Paso 5: Conclusión
Hemos llegado al final del tutorial. Si tiene algún problema o pregunta, no dude en preguntar. Intentaré ayudar tanto como pueda. Muchísimas gracias:)
Recomendado:
Trazador de curvas de semiconductores mejorado con Analog Discovery 2: 8 pasos
Trazador de curvas de semiconductores mejorado con Analog Discovery 2: El principio del trazado de curvas con el AD2 se describe en los siguientes enlaces a continuación: https: //www.instructables.com/id/Semiconductor-Cur … https: //reference.digilentinc .com / reference / instru … Si la corriente medida es bastante alta, entonces es la accu
Configuración de FreeRTOS desde cero en STM32F407 Discovery Kit: 14 pasos
Configuración de FreeRTOS desde cero en STM32F407 Discovery Kit: elegir FreeRTOS como un sistema operativo en tiempo real para su proyecto integrado es una excelente opción. FreeRTOS es realmente gratuito y proporciona muchas funciones RTOS simples y efectivas. Pero configurar freeRTOS desde cero puede ser difícil o puedo decir un bi
Control de servomotor con STM32F4 ARM MCU: 4 pasos
Control de servomotor con STM32F4 ARM MCU: Hola de nuevo, amigos :) Entonces, en este proyecto controlaremos un servomotor con STM32F4 ARM MCU. En mi caso, usaré la placa de descubrimiento, pero si comprende la esencia del problema, puede aplicarla para cada MCU. Entonces. empecemos:)
Control de velocidad del motor de CC mediante el algoritmo PID (STM32F4): 8 pasos (con imágenes)
Control de velocidad del motor de CC mediante el algoritmo PID (STM32F4): hola a todos, Este es tahir ul haq con otro proyecto. Esta vez es STM32F407 como MC. Este es un proyecto de fin de semestre. Espero que les guste. Requiere muchos conceptos y teoría, así que vamos a analizarlo primero. Con la llegada de las computadoras y
DIY ECG usando un Analog Discovery 2 y LabVIEW: 8 pasos
DIY ECG usando un Analog Discovery 2 y LabVIEW: En este Instructable, le mostraré cómo hacer un electrocardiógrafo casero (ECG). El objetivo de esta máquina es amplificar, medir y registrar el potencial eléctrico natural creado por el corazón. Un ECG puede revelar una gran cantidad de información sobre