基于CubeMX-STM32F302_串口调试实现 Printf 打印

基于CubeMX-STM32F302_串口打印调试

1、说明

在 STM32 单片机上实现 Printf 函数打印串口信息,进行代码调试。

2、准备

2.1、软件

HAL 库版本:STM32Cube FW_F3 V1.11.2

2.2、开发工具

1、STM32CubeMX 6.2.0

2、Keil uVision5 V5.34.0.0

3、创建 CubeMX 工程

3.1、新建工程

两种方法。

方法1、点击 1 处 File 选项,再点击 2 处 New Project 来创建一个新的 CubeMX 工程。

方法2、点击 3 处 ACCESS TO MCU SELECTOR 来创建一个新的 CubeMX 工程

3.2、选择自己需要的 MCU 型号

3.3、工程配置

3.3.1、外部时钟源配置

1、选择 RCC 选项。2、打开外部高速时钟的选项。3、选择晶体/陶瓷振荡器

3.3.2、调试接口配置

1、选择 SYS 选项。2、打开 Debug 的选项。3、选择 Serial Wire

3.3.3、外设配置

1、选择外设 USART2。2、模式选项我这里配置为异步(可根据自己需要修改模式)。3、配置波特率、数据长度、奇偶检验、停止位

3.3.4、时钟配置

根据自己的硬件设计配置相应的时钟。

3.4、生成工程

3.4.1、生成工程设置

1、选择工程设置选项。2、设置工程名字。3、设置工程路径。4、选择 IDE.

3.4.2、生成代码

1、代码生成。2、只拷贝需要的库文件。3、为外设初始化创建单独的 .c.h 文件。4、点击生成工程代码。

4、配置 MDK 工程

在打开的工程中新添加 App 文件夹,在文件夹中添加 printf 打印代码,配置路径。

Printf.h

#ifndef _PRINTF_H_
#define _PRINTF_H_



#include "stdio.h"

#include "usart.h" //huart 定义在该函数中,该函数包含了 main.h ,在main.h中包含了 stm32f3xx_hal.h


#endif



Printf.c

#include "Printf.h"

//此处代码与使用 Printf 函数相关,使用时要添加 stdio.h 文件

#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(&huart2 , (uint8_t *)&ch, 1, 0xFFFF);

    return ch;

}




5、实现 printf 打印串口数据

在 main.c文件中包含相应的头文件,测试 printf 函数。

猜你喜欢

转载自blog.csdn.net/qq_39567970/article/details/119005480