STM32H5开发(5)----串口打印配置

STM32H5开发----4.开发板介绍

  • 概述
  • 样品申请
  • 硬件准备
  • 生成例程
  • 配置调试口
  • 代码生成配置
  • 项目配置
  • 调试配置
  • 串口重定向
  • 打印测试
  • 结果

概述

在使用STM32CUBEIDE开发STM32H5项目时,串口打印被证明是一项极其有益的调试工具,能够在开发过程中实时输出信息和调试数据,起到了至关重要的作用。通过充分利用串口打印功能,开发者可以轻松地在代码中插入打印语句,通过串口将这些信息传输至连接于PC端的终端软件,从而方便地监测程序的状态以及各变量的实时值。
在项目中,我们可以将标准C库中的"printf"函数输出进行重定向,使其输出通过USART1通信接口进行传输。值得注意的是,USART1接口与CH340芯片相连接,而CH340则通过串口连接于PC端。这种设置允许我们使用串口助手等工具来实时捕获和显示"printf"函数的输出内容,从而更加高效地进行程序的调试和性能优化。
最近在弄ST的课程,需要样片的可以加群申请:615061293 。

样品申请

https://www.wjx.top/vm/PpC1kRR.aspx

硬件准备

在开始进行开发之前,首先需要准备一块合适的开发板,所选用的是搭载了STM32H503RB芯片的开发板,,具备了丰富多样的外设和功能,非常适合各类应用领域的开发需求。
STM32H5开发(5)----串口打印配置_第1张图片

生成例程

通过查看原理图,可以了解到PB14与USART1的Tx(发送)功能相连接,而PB15则与USART1的Rx(接收)功能相连接。这样的连接配置使得您可以通过USART1接口进行双向的串口通信。

STM32H5开发(5)----串口打印配置_第2张图片

在"Configuration"(配置)选项卡下,找到USART1的配置部分。选择"Async Mode"(异步模式)以启用异步串口通信。
STM32H5开发(5)----串口打印配置_第3张图片

通过确保将PB14设置为Tx引脚,将PB15设置为Rx引脚,将能够正确地配置USART1的引脚,实现正确的串口通信连接。这将为开发提供了一个稳定的通信通道,使能够在开发板上实现数据的双向传输。记得在代码中使用正确的引脚名称,以确保与配置一致。
STM32H5开发(5)----串口打印配置_第4张图片

通过将USART1的波特率设置为115200,将确保与其他设备进行稳定和高效的串口通信。这个设置将影响数据传输速率,确保您的数据能够及时、准确地在通信通道中传递。在编写代码时,确保使用正确的波特率设置,以便在通信的两端保持一致。
STM32H5开发(5)----串口打印配置_第5张图片
本实验的STM32H503以250 MHz运行。
STM32H5开发(5)----串口打印配置_第6张图片

配置调试口

STM32H5开发(5)----串口打印配置_第7张图片

代码生成配置

STM32H5开发(5)----串口打印配置_第8张图片

项目配置

STM32H5开发(5)----串口打印配置_第9张图片

调试配置

点击小虫子按钮进入调试器配置
在这里插入图片描述

或者点击工程。
STM32H5开发(5)----串口打印配置_第10张图片

配置调试器,这里使用jlink进行调试。
STM32H5开发(5)----串口打印配置_第11张图片

串口重定向

在main.c中,添加头文件,否则可能会出现"identifier ‘FILE’ is undefined"错误。
通过包含头文件,可以解决"identifier ‘FILE’ is undefined"错误。这是因为该头文件声明了与文件输入/输出相关的标准函数和类型,包括FILE类型,它在标准输入/输出流的处理中非常重要。
请确保在main.c文件中添加该头文件,并在需要使用文件输入/输出或其他标准I/O函数时,以正确的方式使用它们。

/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */

函数声明和串口重定向:

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

打印测试

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

结果

STM32H5开发(5)----串口打印配置_第12张图片

你可能感兴趣的:(单片机,stm32cube,#STM32,STM32H503,CortexM33,STM32H5,串口,printf,STM32CUBEMX,STM32CUBEIDE)