如何将printf函数重定向到用于调试消息的UART
如何将printf函数重定向到用于调试消息的UART 1。引言在代码开发过程中,在终端窗口中显示有关各种系统参数的消息以帮助调试,这一点尤其有用。一个简单的方法来做。。。
如何将printf函数重定向到用于调试消息的UART
1.简介
在代码开发过程中,在终端窗口中显示关于v。。。
ST Nucleo板上嵌入的ST LINK具有虚拟com端口功能,我们可以使用重定向到STM32的UART的printf轻松获得终端上的调试信息,该UART连接到用于虚拟com端口的ST LINK引脚。在这篇文章中,我将向您展示如何将printf输出重定向到STM32 UART外围设备,该外围设备连接到嵌入式ST链路上的UART引脚,该引脚将传输到主机并通过windows终端程序Tera Term显示。
2.先决条件
- 硬件:
- Micro USB电缆:用于为板供电和编程
- 核苷酸-G070RB

- 软件
- STM32管
3.理论
在Nulceo-G070RB板上,嵌入式ST-LINK/V2连接到PA2(UART TX)和PA3 (UART RX)。这些端口引脚具有USART2替代功能。printf将被重定向为使用PA2和PA3。我们将。。。
4.步骤
- 打开STM32CubIDE
- 使用NUCLEO-G007RB板创建新项目

- 为项目命名
- 在本例中,项目将命名为“Printf”。

- 使用默认设置初始化所有外围设备:
- 要执行此操作,请单击“是”。

- 确保USART2已被选择、配置并映射到PA2和PA3,如下所示:
- 默认情况下,这是在从选定的Nucleo板启动项目时配置的。
- 首先确保USART2已激活,如图所示 此处:

- 它应该在异步模式下配置,如下红色矩形所示的设置:

- 确保USART2备用功能已映射到PA2和P3,这两个功能(分别)连接到Nucleo板上ST-LINK的TX和RX引脚。

- 生成代码
- 保存项目将生成代码。
- 添加代码以切换LED:
- 此代码将把printf函数的输出重定向到USART2。printf函数正在调用fputc以通过USART传输输出。
- 在main.c中,添加以下代码:
/*用户代码开始PFP*/#define PUTCHAR_PROTOTYPE int __io_PUTCHAR(int ch{/*将fputc的实现放在此处*//*例如,将一个字符写入USART1并循环直到传输结束*/HAL_UART_Transmit(&huart2,(uint8_t*)&ch,1,0xFFFF);返回ch;}/*用户代码end 4*/
- 构建项目,进入调试模式并运行代码

要执行代码:
- 首先进入调试会话:

- 然后执行代码:

- 现在打开像TeraTerm这样的终端应用程序
- 配置到ST-LINK虚拟COM端口的串行端口连接。

- 选择以下设置:

- 现在,您将看到printf消息“Hello World”,每秒钟显示一次。

5.链接
STM32G0-产品介绍STM32G0x0基于Arm®的高级32位MCU-参考手册
STM32CubeIDE-STM32集成开发环境-STMicroelectronics
NUCLEO-G007RB-STM32Nucleo-64开发板,带STM32G007RB MCU,支持Arduino和ST morp。。。
特拉期限