欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-08 22:56:43
...

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

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

首先还是软件

STM32HAL库学习技巧1:基于STM32CubeMX printf重定向
用这个软件配置的大家有使用过的应该都不陌生把!!
然后我们随便配置一个项目!! 生成

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

STM32HAL库学习技巧1:基于STM32CubeMX printf重定向
就像这样 !! 时钟简单弄一下 就生成文件了!! 我这边使用的是keil5 用的stm32f103c8t6
然后就生成文件
STM32HAL库学习技巧1:基于STM32CubeMX printf重定向

打开工程

STM32HAL库学习技巧1:基于STM32CubeMX printf重定向
额!!这里要勾选上!!原理嘛 我在网上找了一堆!!大家可以自己去了解一下!
STM32HAL库学习技巧1:基于STM32CubeMX printf重定向

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

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

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

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 是超时时间。
STM32HAL库学习技巧1:基于STM32CubeMX printf重定向

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

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

#include “stdio.h”

然后编译一下

STM32HAL库学习技巧1:基于STM32CubeMX printf重定向
然后使用就 C语言的printf 的使用。
然后我还是给个传送门大家可以参考一下

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

大家可以加入我们的交流群!!
STM32HAL库学习技巧1:基于STM32CubeMX printf重定向