基于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 函数。