[其他ST产品] 基于STM32CUBEMX配置printf经验分享

[复制链接]
6032|77
huwr 发表于 2023-4-22 15:50 | 显示全部楼层
STM32 上使用 printf 输出函数 如果要实现在串口 或者LCD上显示,必须重定义标准库函数里调用的与输出设备相关的函数。
chuxh 发表于 2023-4-22 15:51 | 显示全部楼层
重写putchar函数               
huwr 发表于 2023-4-22 15:52 | 显示全部楼层
stm32printf速度慢好多呢
juventus9554 发表于 2023-4-22 15:54 | 显示全部楼层
STM32中不能使用printf函数吗
stly 发表于 2023-4-22 15:56 | 显示全部楼层
工程属性中的Target项中的Code Generation 选择 UseMicroLIB。 即可使用printf进行串口输出。库函数版本的:如果使用的是MDK,请在工程属性的“Target“-》”CodeGeneration“中勾选”Use MicroLIB“ 进行如上设置后编译一下
stly 发表于 2023-4-22 15:57 | 显示全部楼层
还以为是cubemx自动重定向。
juventus9554 发表于 2023-4-22 15:58 | 显示全部楼层
使用printf打印时:得重新配置的一下程序
llljh 发表于 2023-4-22 15:59 | 显示全部楼层
在工程中添加printf函数的库文件,并在程序中调用printf函数即可。
dingy 发表于 2023-4-22 16:00 | 显示全部楼层
stm32printf函数怎么实现的
huwr 发表于 2023-4-22 16:02 | 显示全部楼层
1、 添加printf的头文件 #include <stdio.h> 2、重写int fputc(int ch, FILE *f)函数
langgq 发表于 2023-4-22 16:03 | 显示全部楼层
在使用STM32CUBEMX进行代码生成时,可以通过配置串口来实现printf输出功能。
yufe 发表于 2023-4-22 16:06 | 显示全部楼层
如果使用的是SWO输出,则需要在调试器中开启SWO功能,并在程序中使能SWO输出。
huwr 发表于 2023-4-22 16:09 | 显示全部楼层
重写putchar就可以使用
songqian17 发表于 2023-4-22 16:11 | 显示全部楼层
选UseMicroLIB库就能用了
lzbf 发表于 2023-4-23 10:37 | 显示全部楼层
printf 实际上是连续调用 fputc 来输出每一个字符的
alvpeg 发表于 2023-4-23 11:43 | 显示全部楼层
printf实质是int fputc(int ch, FILE* f)函数
belindagraham 发表于 2023-4-23 11:53 | 显示全部楼层
在main文件中重定义函数如下:
// 发送数据
int fputc(int ch, FILE *f)
{
USART_SendData(USART1, (unsigned char) ch);// USART1 可以换成 USART2 等
while (!(USART1->SR & USART_FLAG_TXE));
return (ch);
}
zhenykun 发表于 2023-6-7 23:33 | 显示全部楼层
STM32使用printf重定向
chenho 发表于 2023-6-7 23:35 | 显示全部楼层
重定向printf                 
songqian17 发表于 2023-6-7 23:36 | 显示全部楼层
STM32 上使用 printf 输出函数 如果要实现在串口 或者LCD上显示,必须重定义标准库函数里调用的与输出设备相关的函数。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部