描述
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);
}

審核編輯:符乾江
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
嵌入式
+關注
關注
5125文章
19438瀏覽量
313184 -
printf函數
+關注
關注
0文章
31瀏覽量
6046
發布評論請先 登錄
相關推薦
長城重卡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
51單片機中為什么很少出現printf的身影
51單片機中為什么很少出現 printf 的身影?是用不了嗎? 不是的,51單片機可以用 printf,只是不建議使用。 平時我們在操作系統上寫C語言代碼,使用 printf 可以把數據寫到標準輸出

STM32CUBEMX(8)--USART通過定時器中斷方式接收不定長數據
=0;//接受到數據標志
/* USER CODE END PV */
定義printf的重定向函數fputc。
/* USER CODE BEGIN 0 */
void printf
發表于 09-06 16:48
還不會嗎?三分鐘讓你速通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
請問如何將printf使用的stdout重定向到asclin?
例如,STM 可以定義自己的 putchar(char c) 實現,并照常使用 printf。
我使用的是免費的 tricore 工具鏈,HighTec/toolchains/tricore
發表于 06-03 06:48
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
評論