stm32项目中重定向printf打印不出来东西?三种解决方案

本文讲述了在STM32项目中遇到的printf输出延迟问题,原因在于printf不会即时打印,需等待缓冲区满。提供三种解决方案:添加换行符、调用fflush刷新输出流或设置缓冲区为非缓冲模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目场景:

在stm32项目中为了调试将某些参数打出来,重定向printf


问题描述

printf打印不出东西
在这里插入图片描述
缓冲区满了才打印出来
在这里插入图片描述


原因分析:

使用printf函数必须等到缓冲区满或程序结束时,才进行写入到屏幕


解决方案:

解决方法一:加 \n 回车
在这里插入图片描述
解决方法二: 加 fflush(stdout); 刷新输出流将缓冲区中的数据立即写入到文件(或显示设备)中,而不是等到缓冲区满或程序结束时才进行写入。
在这里插入图片描述
解决方法三: 在初始化中加入 setvbuf(stdout, NULL, _IONBF, 0); 将缓冲区置为0
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值