描述
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);
}
审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
嵌入式
+关注
关注
5082文章
19103浏览量
304719 -
printf函数
+关注
关注
0文章
31浏览量
5890
发布评论请先 登录
相关推荐
stdio.h实现了printf函数?
我们平时包含的 stdio.h 头文件,里面是不是实现了 printf 函数? 为什么会有这个疑问?因为每次使用 printf,就得包含 stdio.h ,这就导致很多同学误以为,stdio.h
51单片机中为什么很少出现printf的身影
51单片机中为什么很少出现 printf 的身影?是用不了吗? 不是的,51单片机可以用 printf,只是不建议使用。 平时我们在操作系统上写C语言代码,使用 printf 可以把数据写到标准输出
还不会吗?三分钟让你速通Printf~
一、Printf简介Printf是一个标准的c库API,用来打印信息显示的。Printf的底层输出调用,在windows环境下是fputc函数,在GNUC环境下是__io_putcha
重定向了fputc及putchar函数,但printf没有输出,为什么?
重定向了fputc及putchar函数,但printf没有输出
删除了drivers/drv_uart.c drv_uart.h
删除了文件rt-thread\\components
发表于 07-18 07:44
STM32CubeIDE printf浮点数,浮点数丢失数值的原因?
1、芯片:STM32F103C8T62、环境:STM32CubeIDE3、问题:printf浮点数,浮点数数值丢失如 float A=25.6666;float B=24.7777;实际打印
发表于 06-03 07:07
stm32h745的特殊引脚如何使用HAL库重定义?
现在手上有块stm32h745ii的板子,想把pc13 pc14 pc15三个特殊引脚重定义为普通io口,找了一下HAL库,好像没有f4库里面能直接调用的接口,有知道的大神麻烦告知一下该如何操作
发表于 05-24 08:31
芯海通用 MCU应用笔记 :在 IAR 及 MDK 开发环境下使用 printf 函数重定向移植差异指南
和调试中,printf 函数是常用的打印函数,通常通过 fputc 接口的重定向,即可以通过 printf 输出串口的信息。
但在 IAR8.x 下,需要一些 IDE 的额外配置,MCU 才能正确通过
发表于 05-16 11:56
求助,关于HAL下的printf重定向输出疑问求解
发送结束吗?
(2)在用标准库编程中,重定向函数为
int fputc(int ch,FILE *p)//函数默认的,在使用printf函数时自动调用
{
USART_SendData
发表于 05-10 06:04
stm32f7系列使用printf打印在串口上显示不出来怎么解决?
/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
set
发表于 04-11 06:18
用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
SPI_Receive_IT接收中断通过hspi->RxISR(hspi)来实现,程序当中无法通过中断函数进入自己重定义怎么解决?
G0系列当中例如SPI_Receive_IT接收中断实现方式为通过hspi->RxISR(hspi)来实现,但是本人程序当中无法通过中断函数进入自己重定义
发表于 03-19 08:02
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,问题在于,这个库没有
评论