【单片机/C语言】fputc函数



前言


一、定义概念 + 缩写

1. fputc函数

全称是file output character, 文件输出字符函数
fputc 函数用于将标准输出重定向(如到USART),允许通过串口发送调试信息。

二、性质与例子

int fputc(int ch, FILE* f)
{
    USART_SendData(USART1, (uint8_t)ch);
    while 
    	(USART_GetFlagStatus(USART1, USART_FLAG_TXDE) == RESET)
        ;
    return (ch);
}

这段代码是一个简化的 fputc 函数实现,用于将字符通过 USART1发送出去,在32等嵌入式中常见。
详解如下:

USART_SendData(USART1, (uint8_t)ch);
  • 这行代码调用 USART_SendData 函数,将字符 ch 发送到 USART1。ch 被强制转换为 uint8_t 类型,以确保与 USART_SendData 函数的参数类型匹配。
while (USART_GetFlagStatus(USART1, USART_FLAG_TXDE) == RESET)
    ;
  • 这是一个空循环,它等待直到 USART1 的传输数据寄存器为空(USART_FLAG_TXDE 标志被设置)。USART_GetFlagStatus 函数检查指定的 USART 标志(在这个例子中是 USART_FLAG_TXDE)是否被设置。如果标志没有被设置(即等于 RESET),循环将继续执行,直到标志被设置为止。这确保了在下一个字符发送之前,当前的字符已经被完全发送出去。
return (ch);
  • 最后,函数返回发送的字符 ch。在 fputc 函数的上下文中,返回值通常不是必需的,因为主要目的是将字符发送到 USART。然而,返回发送的字符可以使函数更加通用,或者在某些情况下提供额外的调试信息。

因此次此代码实现了将字符发送到 USART1 的 fputc 函数,并且等待直到字符被完全发送出去。这使得它非常适合用于重定向标准输出到 USART,以便在嵌入式系统中通过串口发送调试信息。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值