描述
C 库函数 int fputc(int char, FILE *stream) 将参数 char 指定的字符(无符号 char)写入指定的流,并推进流的位置指示器。
声明
下面是 fputc() 函数的声明。
int fputc(int char, FILE *stream)
参数
char − 这是要写的字符。这将作为其 int 升级传递。
stream − 这是指向 FILE 对象的指针,该对象标识要写入字符的流。
返回值
如果没有错误,则返回已写入的同一字符。如果发生错误,则返回 EOF 并设置错误指示器。
下面的示例演示 fputc() 函数的用法。
#include
int main () {
FILE *fp;
int ch;
fp = fopen("file.txt", "w+");
for( ch = 33 ; ch <= 100; ch++ ) {
fputc(ch, fp);
}
fclose(fp);
return(0);
}
下面将重定义为printf函数
///重定向c库函数printf到串口,重定向后可使用printf函数
int fputc(int ch, FILE *f)
{
/* 发送一个字节数据到串口 */
USART_SendData(USART3, (uint8_t) ch);
/* 等待发送完毕 */
while (USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET);
return (ch);
}
///重定向c库函数scanf到串口,重写向后可使用scanf、getchar等函数
int fgetc(FILE *f)
{
/* 等待串口输入数据 */
while (USART_GetFlagStatus(USART3, USART_FLAG_RXNE) == RESET);
return (int)USART_ReceiveData(USART3);
}

审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
嵌入式
+关注
关注
5186文章
20149浏览量
328864 -
printf函数
+关注
关注
0文章
31浏览量
6226
发布评论请先 登录
相关推荐
热点推荐
printf重定向之后无法运行是怎么回事?
ch;
}
在代码中添加printf之后进入调试模式点击RUN按钮是不能运行的。把print屏蔽之后就能运行。[/td][/tr]
以下内容为评论
[tr][td
发表于 11-13 08:07
C语言的printf基本用法介绍
printf 不会,要自己添加换行符,这是 puts 和 printf 在输出字符串时的一个区别。
2) //后面的为注释。注释用来说明代码是什么意思,起到提示的作用,可以帮助我们理解代码。注释虽然
发表于 11-12 07:04
使用VScode的PIO开发GD32VF103,但是串口无法打印浮点数怎么解决?
我最近在使用VScode的PIO开发GD32V,使用的是longan的模板,但是我将串口输出重定义到printf函数中,发现无法使用%f输出浮点数,想问问应该怎么配置,我看到的一种说法是在
发表于 11-06 06:49
电能质量在线监测装置通信超时会重连吗?
维度展开分析: 一、通信重连的核心技术机制 1. 协议层重传与超时管理 Modbus 协议 :支持超时重传 3 次(默认配置),重连间隔可通过参数设置(如 ABB PQFA 系列支持 0-60 秒自定义)。例如,当 Modbus
printf函数在hbird SDK中的应用
系统中,使用newlib作为C运行库,而newlib的C运行库所提供的printf函数最终依赖桩函数write。
在hbird_sdk中可以找到write.c文件
内容如下:
其中的SOC_DEBUG_UART被定义为了uart0。
所以,
发表于 10-31 08:48
e203仿真helloworld例程printf能在终端显示的原理
pirntf可以直接输出信息。而在嵌入式领域,想要实现printf需要做一点工作。
以蜂鸟e203为例,它没有显示器,没有标准终端,想要实现printf最常见的方式是通过串口打印信息。但是,怎么让编译器
发表于 10-27 06:56
福田欧曼银河5刷新重卡效能标准
在物流行业进入“效率为王、降本为要”的竞争时代,一辆能兼顾高效运营、节能省本、舒适体验的重卡,成为千万物流从业者的核心诉求。福田欧曼银河5作为福田汽车深度洞察用户痛点,立足重卡全场景运
福田欧曼银河9重新定义全球重卡标准
产品升级与行业进步,欧曼银河9以“用户思维”为核心,深度洞察物流从业者、运输企业及车队管理者的真实痛点,通过场景化创新、人性化设计、智能化服务,打造了一款真正“懂用户、为用户”的旗舰重卡,重新
长城重卡Hi4-G超级混动系统发布
近日,长城重卡Hi4-G技术共创发布会在保定举行。这场以“用户共创”为核心的技术盛会,是行业首次由卡车司机、物流企业代表与工程师同台讲述研发故事,通过真实场景数据与技术创新,重新定义中国重
【RA-Eco-RA2L1-48PIN-V1.0开发板试用】——使用串口输出打印printf实现
节.起始字符串为First_String的宏定义
uint16_t USART_RX_STA = First_String_num; //接收状态标记,根据起始字符串来初始化起始字符位置
void
发表于 01-23 12:20
法法易直流充电枪:为电动重卡充电赋能
为在2060前实现碳中和,国家及多部委印发文件,推广新能源中重型货车等。目前新能源重卡销量增长强劲,2024年电动重卡占比超90%,但重卡电动化渗透率不足15%,明年将迎来放量拐点。可
福田欧曼银河重新定义世界重卡标准
在当今全球重卡行业中,随着科技的飞速发展和市场需求的不断变化,品牌形象的塑造和全球市场格局的重塑是企业竞争力的关键。基于“银河智慧架构”的欧曼银河系列产品,致力于“让中国重卡重新定义世界标准”,从
stdio.h实现了printf函数?
我们平时包含的 stdio.h 头文件,里面是不是实现了 printf 函数? 为什么会有这个疑问?因为每次使用 printf,就得包含 stdio.h ,这就导致很多同学误以为,stdio.h

fputc重定义为printf
评论