STM32中关于串口通信的printf()函数重定向问题

    重定向:是指用户可以自己重写c的库函数,当连接器检查到用户编写了与C库函数相同名字的函数时,优先采用用户编写的函数,这样用户就可以实现对库的修改了。


在STM32串口通信程序中使用printf()函数发送数据非常方便,但是需要先进行简单的配置,下面介绍两种配置方法。

方法一、对工程属性进行配置

第1步:在main.c中包含"stdio.h” (标准输入输出头文件);

第2步:在main.c文件中重定义fput()这个C标准库函数(因为printf()在C标准库函数中实质上是一个宏,要调用到fputc()这个函数);

第3步:在工程属性的"Target" -> "Code Generation" 选项中勾选"Use MicroLIB";

方法二:在工程中添加“regtarge.c”文件

第1步:在main.c文件中包含"stdio.h”文件;

第2步:在工程中创建一个文件保存为"regtarge.c",然后将其添加到工程中;

第3步:在main文件中添加定义以下两个函数

至此完成配置,可以在main.c文件中随意调用printf() 。


转载地址:https://blog.csdn.net/kevinhg/article/details/40016883

猜你喜欢

转载自blog.csdn.net/whalefall/article/details/81213789