Desarrollo STM32H5 (5)----configuración de impresión de puerto serie

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.
inserte la descripción de la imagen aquí

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.

inserte la descripción de la imagen aquí

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.
inserte la descripción de la imagen aquí

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.
inserte la descripción de la imagen aquí

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.
inserte la descripción de la imagen aquí
El STM32H503 para este experimento funciona a 250 MHz.
inserte la descripción de la imagen aquí

Configurar puerto de depuración

inserte la descripción de la imagen aquí

Configuración de generación de código

inserte la descripción de la imagen aquí

configuración del proyecto

inserte la descripción de la imagen aquí

configuración de depuración

Haga clic en el botón de error para ingresar a la configuración del depurador
inserte la descripción de la imagen aquí

O haga clic en Proyecto.
inserte la descripción de la imagen aquí

Configure el depurador, aquí use jlink para la depuración.
inserte la descripción de la imagen aquí

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 */

resultado

inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_24312945/article/details/132125089
Recomendado
Clasificación