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

審核編輯:符乾江
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
嵌入式
+關注
關注
5141文章
19537瀏覽量
315035 -
printf函數
+關注
關注
0文章
31瀏覽量
6074
發布評論請先 登錄
相關推薦
熱點推薦
福田歐曼銀河9重新定義全球重卡標準
產品升級與行業進步,歐曼銀河9以“用戶思維”為核心,深度洞察物流從業者、運輸企業及車隊管理者的真實痛點,通過場景化創新、人性化設計、智能化服務,打造了一款真正“懂用戶、為用戶”的旗艦重卡,重新
長城重卡Hi4-G超級混動系統發布
近日,長城重卡Hi4-G技術共創發布會在保定舉行。這場以“用戶共創”為核心的技術盛會,是行業首次由卡車司機、物流企業代表與工程師同臺講述研發故事,通過真實場景數據與技術創新,重新定義中國重
在外部中斷中將printf寫入,外部中斷LED可以翻轉,但串口不可顯示,為什么?
在外部中斷中將printf寫入,外部中斷LED可以翻轉,但串口不可顯示
```/* USER CODE END Header */
/* Includes
發表于 03-13 06:19
【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%,明年將迎來放量拐點。可
什么是熱重分析(TGA)
什么是熱重分析(TGA)熱重分析(TGA)在專業領域扮演著至關重要的角色。該技術通過精確測量樣品在受控溫度變化下的質量變化,來分析材料的熱穩定性、分解行為和成分分析。本文將對TGA的運作機制、樣品

福田歐曼銀河重新定義世界重卡標準
在當今全球重卡行業中,隨著科技的飛速發展和市場需求的不斷變化,品牌形象的塑造和全球市場格局的重塑是企業競爭力的關鍵。基于“銀河智慧架構”的歐曼銀河系列產品,致力于“讓中國重卡重新定義世界標準”,從
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
請問est_printf為什么要使用堆棧空間?
我正在嘗試解決 ESP8266_RTOS V3.0 中的問題
ets_printf用于將調試消息轉儲出通信端口。
ets_printf使用 ets_io_vprintf(ets_putc
發表于 07-09 07:47
評論