描述
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);
}
审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
嵌入式
+关注
关注
4981文章
18271浏览量
288303 -
printf函数
+关注
关注
0文章
30浏览量
5826
发布评论请先 登录
相关推荐
用IAR测试stm8s003的printf,无法打印小数点是怎么回事?
如题,无法输出小数点,IAR还要怎么设置??
double y=0;
y=34.56;
printf(\"rn Printf_Number1 = %0.1f rn\", y
发表于 04-07 06:01
STM32的疑难杂症之一:Printf的使用
一、Printf简介Printf是一个标准的C库API,用来打印信息显示的。Printf的底层输出调用,在windows环境下是fputc函数,在GNUC环境下是__io_putcha
求助,关于STM32CUBEIDE1.5.0使用Printf函数的疑问
基于eclipse的,就把工程弄到STM32CUBEIDE中,但怎么都不OK
自己从新从STM32CUBEMX到STM32CUBEIDE建工程,发现可以烧录进去,LED跑起来了,但是printf函数怎么都不行!
网上
发表于 03-22 06:47
TLE9854 printf函数无法输出是怎么回事?
ttywrch(int ch)
{
stdout_putchar(ch);
}
我把sint32 stdout_putchar(sint32 Char)注释,改为
int fputc(int ch, FILE *f),printf可以用,这是怎么回事,是哪里我没配置吗
发表于 02-02 16:05
解决printf无法打印输出的问题
FreeRTOS中直接使用newlib库是有问题的,相信使用过freertos进行printf都能发现这个问题,这个问题网上有两种方法:1、使用printf.stdarg.c,问题在于,这个库没有
AWorksLP应用笔记:重定向printf函数
printf函数作为标准库定义的格式化输出方式,本文将介绍其在AWorksLP下默认适配以及重映射至热拔插设备端口的实现。默认适配AWorksLP中默认已经对printf函数完成相关适配工作,且默认
如何实现Printf()接口重定向到UART
;。所谓的重定向,就是重新定义Printf()接口函数里调用的与输出设备相关的函数,eg:使用Printf()接口将MCU中的信息,通过串口或者Ethernet输出到终端上位机。
stm32怎么用printf函数?
使用printf需要做哪些配置。
有两种配置方法:
一、对工程属性进行配置,详细步骤如下
1、首先要在你的main 文件中 包含“stdio.h” (标准输入输出头文件)。
2、在main文件中重定义函数 如下
发表于 07-31 10:16
keil5.14在debug模式下Debug(printf)Viewer窗口无串口输出,要怎么配置?
用的是NuTiny-SDK-Nano130开发板,示例代码中,printf最终输出的数据函数fputc是通过UART0输出的,我外接串口到PC后,能在PC上的串口终端看到printf的输出信息,但是Debug(
发表于 06-28 07:49
NDA102EC1中更改UUART1作为调试串口打印输出调试信息未能成功的原因?
printf()函数和fputc()函数的定义位置。
最终发现printf()函数在stdio.h头文件中定义,属于标准C的
发表于 06-27 07:11
【瑞萨RA MCU创意氛围赛】2. KEIL下串口重定向printf和scanf
和scanf都是通过命令行窗口来执行的,单片机上如何做呢?
其实对于不同的IDE,具体做法是不一样的,本文以KEIL为例,讲述如何将串口打印和接收功能重定向到printf和scanf。
1. 串口硬件连接
如下
发表于 05-26 13:41
如何使用带有DEBUG_UART的printf/DEBUTOUT() 而不是SemiHosting?
() 宏,一切都会正确编译。如果我尝试使用 DEBUGOUT() 宏或 printf() 我会收到以下错误:
这些符号在哪里定义的?board_api.h 将 DEBUGOUT() 宏重新定义
发表于 05-18 10:52
评论