STM32 printf重定向

STM32 printf重定向

ID:38013977

大?。?5.39 KB

頁數(shù):4頁

時間:2019-05-21

STM32 printf重定向_第1頁
STM32 printf重定向_第2頁
STM32 printf重定向_第3頁
STM32 printf重定向_第4頁
資源描述:

《STM32 printf重定向》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、在STM32串口通信程序中使用printf發(fā)送數(shù)據(jù),非常的方便??稍趧傞_始使用的時候總是遇到問題,常見的是硬件訪真時無法進(jìn)入main主函數(shù),其實只要簡單的配置一下就可以了。?下面就說一下使用printf需要做哪些配置。?有兩種配置方法:一、對工程屬性進(jìn)行配置,詳細(xì)步驟如下1、首先要在你的main文件中包含“stdio.h”(標(biāo)準(zhǔn)輸入輸出頭文件)。2、在main文件中重定義函數(shù)??如下:??//發(fā)送數(shù)據(jù)??intfputc(intch,FILE*f)??{???USART_SendData(USART1,(unsignedchar

2、)ch);//USART1可以換成USART2等???while(!(USART1->SR&USART_FLAG_TXE));???return(ch);??}??//接收數(shù)據(jù)??intGetKey(void)?{????while(!(USART1->SR&USART_FLAG_RXNE));???return((int)(USART1->DR&0x1FF));??}??這樣在使用printf時就會調(diào)用自定義的fputc函數(shù),來發(fā)送字符。3、在工程屬性的“Target"->"CodeGeneration"選項中勾選"UseMicroLIB"

3、”???MicroLIB是缺省C的備份庫,關(guān)于它可以到網(wǎng)上查找詳細(xì)資料。?至此完成配置,在工程中可以隨意使用printf向串口發(fā)送數(shù)據(jù)了。?二、第二種方法是在工程中添加“Regtarge.c”文件1、在main文件中包含“stdio.h”文件2、在工程中創(chuàng)建一個文件保存為Regtarge.c,然后將其添加工程中在文件中輸入如下內(nèi)容(直接復(fù)制即可)#include#include#pragmaimport(__use_no_semihosting_swi)externint?SendChar(intch)

4、;//聲明外部函數(shù),在main文件中定義externint?GetKey(void);struct__FILE{?inthandle;????????//Addwhateveryouneedhere?};FILE__stdout;FILE__stdin;intfputc(intch,FILE*f){?return(SendChar(ch));}intfgetc(FILE*f){?return(SendChar(GetKey()));}void_ttywrch(intch){?SendChar(ch);}intferror(FILE*f){??

5、????????????//Yourimplementationofferror?returnEOF;}void_sys_exit(intreturn_code){label:?gotolabel;?????//endlessloop}?3、在main文件中添加定義以下兩個函數(shù)intSendChar(intch)?{?while(!(USART1->SR&USART_FLAG_TXE));//USART1可換成你程序中通信的串口?USART1->DR=(ch&0x1FF);?return(ch);}intGetKey(void)?{?whil

6、e(!(USART1->SR&USART_FLAG_RXNE));?return((int)(USART1->DR&0x1FF));}至此完成配置,可以在main文件中隨意使用printf。

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。