STM32
直播中

摩托罗拉

8年用户 911经验值
私信 关注
[问答]

如何实现在STM32串口通信程序中使用printf()函数发送数据呢

如何实现在STM32串口通信程序中使用printf()函数发送数据呢?有哪几种配置方法?

回帖(1)

h1654155275.5954

2021-12-2 10:01:07
重定向:是指用户可以自己重写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() 。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分