打印
[应用相关]

STM32使用printf打印输出到串口

[复制链接]
1946|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
最近调试STM32代码的过程中,想先把串口调通,然后好测试其他程序部分。在串口调通后,想着使用printf这个C语言常用的打印输出。参考了一些大神的**,整理过程如下:。

使用特权

评论回复
沙发
梅花香自123|  楼主 | 2021-9-28 23:14 | 只看该作者
首先,在C语言中,我们使用printf函数是需要添加头文件#include<stdio.h>的,这样才能打印输出到控制台。同样在嵌入式STM32开发过程中,也是需要添加头文件<stdio.h>

使用特权

评论回复
板凳
梅花香自123|  楼主 | 2021-9-28 23:15 | 只看该作者
其次,我们需要printf函数经串口输出,我们需要对stdio.h文件的fputc进行重定向操作:

使用特权

评论回复
地板
梅花香自123|  楼主 | 2021-9-28 23:16 | 只看该作者
int fputc(int ch, FILE *f)
{
        USART_SendData( USART1, (uint8_t) ch );                         //发送字符
        while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);   //检查是否发送完毕
        return (ch);
}

使用特权

评论回复
5
梅花香自123|  楼主 | 2021-9-28 23:17 | 只看该作者
上面是以串口1为例,同样可以是其他串口。

使用特权

评论回复
6
梅花香自123|  楼主 | 2021-9-28 23:17 | 只看该作者
最后,在【Options for target】中设置 Use MicroLiB,如下图:

使用特权

评论回复
7
梅花香自123|  楼主 | 2021-9-28 23:18 | 只看该作者
MicroLIB是一个缺省的C库,用于内存受限制的嵌入式程序开发。printf函数是基于C库实现的,所以这里需要勾选。

使用特权

评论回复
8
木木guainv| | 2021-10-13 09:24 | 只看该作者
是不是这个函数不太容易 用好啊

使用特权

评论回复
9
wowu| | 2021-10-13 09:28 | 只看该作者
串口还是比较好调试的

使用特权

评论回复
10
xiaoqizi| | 2021-10-13 09:38 | 只看该作者
可以通过什么进行打印呢

使用特权

评论回复
11
tpgf| | 2021-10-13 09:40 | 只看该作者
在什么情况下需要输出打印呀

使用特权

评论回复
12
heimaojingzhang| | 2021-10-13 09:43 | 只看该作者
在iar中需要配置吗

使用特权

评论回复
13
mickit| | 2021-10-18 19:55 | 只看该作者
使用printf等标准C流函数输出数据的办法

使用特权

评论回复
14
mikewalpole| | 2021-10-18 19:55 | 只看该作者
stm32中能直接使用printf吗

使用特权

评论回复
15
robincotton| | 2021-10-18 19:55 | 只看该作者
查看网上教程,需要重定义         

使用特权

评论回复
16
jackcat| | 2021-10-18 19:55 | 只看该作者
需要同时重定义fputc函数   

使用特权

评论回复
17
hearstnorman323| | 2021-10-18 19:56 | 只看该作者
程属性中的Target项中的Code Generation 选择 UseMicroLIB。  

使用特权

评论回复
18
tifmill| | 2021-10-18 19:56 | 只看该作者
在MDK下面怎样用printf对stm32进行调试

使用特权

评论回复
19
nomomy| | 2021-10-18 19:56 | 只看该作者
printf是标准输出接口

使用特权

评论回复
20
abotomson| | 2021-10-18 19:56 | 只看该作者
printf使用dma吗  

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

99

主题

1095

帖子

0

粉丝