STM32HAL库学习技巧1:基于STM32CubeMX printf重定向

STM32CubeMX配置后printf重定向(渝兴未到科技)

最近我找了好多都相识的文档,虽然百度上面一找一大把,我这边还是来写一下用STM32CubeMX配置好项目后如何做printf 重定向串口设置,有什么不对的地方希望大家提出来指正!!!

首先还是软件

在这里插入图片描述
用这个软件配置的大家有使用过的应该都不陌生把!!
然后我们随便配置一个项目!! 生成

既然是串口打印 一定要配置个串口哦 !!我这儿用的USART1

在这里插入图片描述
就像这样 !! 时钟简单弄一下 就生成文件了!! 我这边使用的是keil5 用的stm32f103c8t6
然后就生成文件
在这里插入图片描述

打开工程

在这里插入图片描述
额!!这里要勾选上!!原理嘛 我在网上找了一堆!!大家可以自己去了解一下!
在这里插入图片描述

然后 我们接下来开始配置重定向的函数

我写的简单就写在main.c 里面 hal库里面 对串口发送函数进行了包装

在这里插入图片描述

int fputc(int ch, FILE *f)
{

	HAL_UART_Transmit(&huart1, (unsigned char *)&ch, 1, 0xFFFF); 
	while(__HAL_UART_GET_FLAG(&huart1,UART_FLAG_TC)!=SET);		//等待发送完成

	//while ((USART1->SR & 0X40) == 0); 
    //USART1->DR = (uint8_t) ch;
    return ch;
}

上面的&huart1 是根据自己定义的 使用的UART串口,(uint8_t *)ch 是数据值,1 是字节,0xFFFF 是超时时间。
在这里插入图片描述

printf函数使用自然也需要调用C语言的库

在这里插入图片描述

#include “stdio.h”

然后编译一下

在这里插入图片描述
然后使用就 C语言的printf 的使用。
然后我还是给个传送门大家可以参考一下

链接:https://pan.baidu.com/s/1HdWfzGwXAup2EZb8cWLl6A
提取码:uvq9

大家可以加入我们的交流群!!
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42714281/article/details/106379412