重定向fputc函数实现printf串口发送

在嵌入式系统中,通常需要将输出重定向到串口以便于调试。本文介绍了如何通过重写fputc函数,将标准输出从调试器窗口转向USART1,使得printf系列函数的数据能够通过串口发送。步骤包括包含stdio.h头文件,自定义fputc实现,并在项目设置中选择使用MicroLIB库。最后,可以直接在main函数中使用printf进行串口通信。

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

对fputs函数的理解

(重定向:重写库函数,对原函数进行覆盖,编译时优先调用重定向的用户函数)

fputc()默认是把字符输出到调试器控制窗口,要把数据通过USART输出到串口助手,需对基于fputc()的printf()系列函数的输出都重定向到USART端口上去;要想使用USART功能,需重定向fputc()函数

具体操作

1、先要包含头文件 "#include <stdio.h>"

2、在usart.c文件里面重定向fputc,覆盖掉原来的定义

在usart.c里面

int fputc(int ch, FILE *f)
{
    USART_SendData(USART1, (uint8_t)ch);   //将字符强制转换为无符号整型
    while(USART_GetFlagStatus(USARTx,USART_FLAG_TXE)==RESET);   //检测
    return ch;
}

3、在状态栏魔术棒中,打开选项,Target,选上“调用库函数”Use MicroLIB

4、直接在main函数中,使用printf()输出字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值