Desarrollo STM32H5----4 Introducción de la placa de desarrollo
descripción general
Cuando se usa STM32CUBEIDE para desarrollar proyectos STM32H5, la impresión del puerto serial demuestra ser una herramienta de depuración extremadamente beneficiosa, que juega un papel vital en la salida de información en tiempo real y los datos de depuración durante el proceso de desarrollo. Al hacer un uso completo de la función de impresión del puerto serie, los desarrolladores pueden insertar fácilmente declaraciones de impresión en el código y transmitir la información al software del terminal conectado a la PC a través del puerto serie, para monitorear convenientemente el estado del programa y el valores en tiempo real de varias variables.
En el proyecto, podemos redirigir la salida de la función "printf" en la biblioteca C estándar para que la salida se transmita a través de la interfaz de comunicación USART1. Vale la pena señalar que la interfaz USART1 está conectada al chip CH340 y el CH340 está conectado a la PC a través del puerto serie. Esta configuración nos permite usar herramientas como asistentes de puerto serie para capturar y mostrar la salida de la función "printf" en tiempo real, para depurar y optimizar el programa de manera más eficiente.
Actualmente estoy tomando cursos de ST, y aquellos que necesiten muestras pueden unirse a la solicitud de grupo: 615061293.
aplicación de muestra
https://www.wjx.top/vm/PpC1kRR.aspx
preparación de hardware
Antes de comenzar el desarrollo, primero debe preparar una placa de desarrollo adecuada. La placa de desarrollo seleccionada está equipada con el chip STM32H503RB, que tiene una variedad de periféricos y funciones, y es muy adecuado para las necesidades de desarrollo de varios campos de aplicación.
generar rutina
Al observar el diagrama esquemático, podemos entender que PB14 está conectado a la función Tx (transmisión) de USART1 y PB15 está conectado a la función Rx (recepción) de USART1. Esta configuración de conexión le permite realizar una comunicación serial bidireccional a través de la interfaz USART1.
En la pestaña "Configuración", busque la sección de configuración para USART1. Seleccione "Modo asíncrono" para habilitar la comunicación serial asíncrona.
Al asegurarse de que PB14 esté configurado como pin Tx y PB15 como pin Rx, podrá configurar correctamente los pines de USART1 para la conexión de comunicación en serie correcta. Esto proporcionará un canal de comunicación estable para el desarrollo, lo que permitirá la transmisión bidireccional de datos en la placa de desarrollo. Recuerde usar los nombres de pin correctos en el código para garantizar la coherencia con la configuración.
Al configurar la tasa de baudios de USART1 a 115200, garantizará una comunicación en serie estable y eficiente con otros dispositivos. Esta configuración afectará la tasa de transferencia de datos, asegurando que sus datos se entreguen en el canal de comunicación de manera oportuna y precisa. Al escribir su código, asegúrese de usar la configuración correcta de velocidad en baudios para que sea consistente en ambos extremos de la comunicación.
El STM32H503 para este experimento funciona a 250 MHz.
Configurar puerto de depuración
Configuración de generación de código
configuración del proyecto
configuración de depuración
Haga clic en el botón de error para ingresar a la configuración del depurador
O haga clic en Proyecto.
Configure el depurador, aquí use jlink para la depuración.
Redirección de puerto serie
En main.c, agregue el archivo de encabezado; de lo contrario, puede ocurrir el error "el identificador 'ARCHIVO' no está definido".
El error "el identificador 'ARCHIVO' no está definido" se puede resolver incluyendo el archivo de encabezado <stdio.h>. Esto se debe a que el archivo de encabezado declara funciones y tipos estándar relacionados con la entrada/salida de archivos, incluido el tipo de ARCHIVO, que es muy importante en el procesamiento de flujos de entrada/salida estándar.
Asegúrese de agregar este archivo de encabezado en el archivo main.c y utilícelo de la manera correcta cuando necesite usar entrada/salida de archivos u otras funciones de E/S estándar.
/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */
Declaración de función y redirección de puerto serie:
/* USER CODE BEGIN PFP */
#ifdef __GNUC__ //串口重定�???
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
/* USER CODE END PFP */
prueba de impresión
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
printf("Hello World!\n\r");
HAL_Delay(1000);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */