描述
C 庫函數(shù) int fputc(int char, FILE *stream) 將參數(shù) char 指定的字符(無符號 char)寫入指定的流,并推進(jìn)流的位置指示器。
聲明
下面是 fputc() 函數(shù)的聲明。
int fputc(int char, FILE *stream)
參數(shù)
char ? 這是要寫的字符。這將作為其 int 升級傳遞。
stream ? 這是指向 FILE 對象的指針,該對象標(biāo)識要寫入字符的流。
返回值
如果沒有錯誤,則返回已寫入的同一字符。如果發(fā)生錯誤,則返回 EOF 并設(shè)置錯誤指示器。
下面的示例演示 fputc() 函數(shù)的用法。
#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函數(shù)
///重定向c庫函數(shù)printf到串口,重定向后可使用printf函數(shù)
int fputc(int ch, FILE *f)
{
/* 發(fā)送一個字節(jié)數(shù)據(jù)到串口 */
USART_SendData(USART3, (uint8_t) ch);
/* 等待發(fā)送完畢 */
while (USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET);
return (ch);
}
///重定向c庫函數(shù)scanf到串口,重寫向后可使用scanf、getchar等函數(shù)
int fgetc(FILE *f)
{
/* 等待串口輸入數(shù)據(jù) */
while (USART_GetFlagStatus(USART3, USART_FLAG_RXNE) == RESET);
return (int)USART_ReceiveData(USART3);
}

審核編輯:符乾江
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
嵌入式
+關(guān)注
關(guān)注
5188文章
20174瀏覽量
329247 -
printf函數(shù)
+關(guān)注
關(guān)注
0文章
31瀏覽量
6230
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
printf重定向之后無法運(yùn)行是怎么回事?
ch;
}
在代碼中添加printf之后進(jìn)入調(diào)試模式點擊RUN按鈕是不能運(yùn)行的。把print屏蔽之后就能運(yùn)行。[/td][/tr]
以下內(nèi)容為評論
[tr][td
發(fā)表于 11-13 08:07
C語言的printf基本用法介紹
printf 不會,要自己添加換行符,這是 puts 和 printf 在輸出字符串時的一個區(qū)別。
2) //后面的為注釋。注釋用來說明代碼是什么意思,起到提示的作用,可以幫助我們理解代碼。注釋雖然
發(fā)表于 11-12 07:04
使用VScode的PIO開發(fā)GD32VF103,但是串口無法打印浮點數(shù)怎么解決?
我最近在使用VScode的PIO開發(fā)GD32V,使用的是longan的模板,但是我將串口輸出重定義到printf函數(shù)中,發(fā)現(xiàn)無法使用%f輸出浮點數(shù),想問問應(yīng)該怎么配置,我看到的一種說法是在
發(fā)表于 11-06 06:49
電能質(zhì)量在線監(jiān)測裝置通信超時會重連嗎?
維度展開分析: 一、通信重連的核心技術(shù)機(jī)制 1. 協(xié)議層重傳與超時管理 Modbus 協(xié)議 :支持超時重傳 3 次(默認(rèn)配置),重連間隔可通過參數(shù)設(shè)置(如 ABB PQFA 系列支持 0-60 秒自定義)。例如,當(dāng) Modbus
printf函數(shù)在hbird SDK中的應(yīng)用
系統(tǒng)中,使用newlib作為C運(yùn)行庫,而newlib的C運(yùn)行庫所提供的printf函數(shù)最終依賴樁函數(shù)write。
在hbird_sdk中可以找到write.c文件
內(nèi)容如下:
其中的SOC_DEBUG_UART被定義為了uart0。
所以,
發(fā)表于 10-31 08:48
e203仿真helloworld例程printf能在終端顯示的原理
pirntf可以直接輸出信息。而在嵌入式領(lǐng)域,想要實現(xiàn)printf需要做一點工作。
以蜂鳥e203為例,它沒有顯示器,沒有標(biāo)準(zhǔn)終端,想要實現(xiàn)printf最常見的方式是通過串口打印信息。但是,怎么讓編譯器
發(fā)表于 10-27 06:56
什么是熱重分析法(TGA)
分析為LED產(chǎn)品的品質(zhì)控制和優(yōu)化提供了關(guān)鍵數(shù)據(jù)支持,有助于確保LED在實際應(yīng)用中的穩(wěn)定性和耐用性。熱重分析的構(gòu)成熱重分析儀主要由以下幾個關(guān)鍵部分構(gòu)成:1.熱天平將電
福田歐曼銀河5刷新重卡效能標(biāo)準(zhǔn)
在物流行業(yè)進(jìn)入“效率為王、降本為要”的競爭時代,一輛能兼顧高效運(yùn)營、節(jié)能省本、舒適體驗的重卡,成為千萬物流從業(yè)者的核心訴求。福田歐曼銀河5作為福田汽車深度洞察用戶痛點,立足重卡全場景運(yùn)
瑞薩RA單片機(jī)在e2 studio環(huán)境下printf編譯出錯的問題解析
最近看到有一些網(wǎng)友在討論關(guān)于:瑞薩RA單片機(jī)在e2 studio環(huán)境下printf編譯出錯的問題。
福田歐曼銀河9重新定義全球重卡標(biāo)準(zhǔn)
產(chǎn)品升級與行業(yè)進(jìn)步,歐曼銀河9以“用戶思維”為核心,深度洞察物流從業(yè)者、運(yùn)輸企業(yè)及車隊管理者的真實痛點,通過場景化創(chuàng)新、人性化設(shè)計、智能化服務(wù),打造了一款真正“懂用戶、為用戶”的旗艦重卡,重新
長城重卡Hi4-G超級混動系統(tǒng)發(fā)布
近日,長城重卡Hi4-G技術(shù)共創(chuàng)發(fā)布會在保定舉行。這場以“用戶共創(chuàng)”為核心的技術(shù)盛會,是行業(yè)首次由卡車司機(jī)、物流企業(yè)代表與工程師同臺講述研發(fā)故事,通過真實場景數(shù)據(jù)與技術(shù)創(chuàng)新,重新定義中國重
【RA-Eco-RA2L1-48PIN-V1.0開發(fā)板試用】——使用串口輸出打印printf實現(xiàn)
節(jié).起始字符串為First_String的宏定義
uint16_t USART_RX_STA = First_String_num; //接收狀態(tài)標(biāo)記,根據(jù)起始字符串來初始化起始字符位置
void
發(fā)表于 01-23 12:20
法法易直流充電槍:為電動重卡充電賦能
為在2060前實現(xiàn)碳中和,國家及多部委印發(fā)文件,推廣新能源中重型貨車等。目前新能源重卡銷量增長強(qiáng)勁,2024年電動重卡占比超90%,但重卡電動化滲透率不足15%,明年將迎來放量拐點???/div>
福田歐曼銀河重新定義世界重卡標(biāo)準(zhǔn)
在當(dāng)今全球重卡行業(yè)中,隨著科技的飛速發(fā)展和市場需求的不斷變化,品牌形象的塑造和全球市場格局的重塑是企業(yè)競爭力的關(guān)鍵?;凇般y河智慧架構(gòu)”的歐曼銀河系列產(chǎn)品,致力于“讓中國重卡重新定義世界標(biāo)準(zhǔn)”,從
stdio.h實現(xiàn)了printf函數(shù)?
我們平時包含的 stdio.h 頭文件,里面是不是實現(xiàn)了 printf 函數(shù)? 為什么會有這個疑問?因為每次使用 printf,就得包含 stdio.h ,這就導(dǎo)致很多同學(xué)誤以為,stdio.h

fputc重定義為printf
評論