STM32串口通信中使用printf發(fā)送數(shù)據(jù)配置方法(開發(fā)環(huán)境 Keil RVMDK)
在STM32串口通信程序中使用printf發(fā)送數(shù)據(jù),非常的方便。可在剛開始使用的時(shí)候總是遇到問題,常見的是硬件訪真時(shí)無法進(jìn)入main主函數(shù),其實(shí)只要簡單的配置一下就可以了。
下面就說一下使用printf需要做哪些配置。
有兩種配置方法:
一、對(duì)工程屬性進(jìn)行配置,詳細(xì)步驟如下
1、首先要在你的main 文件中 包含“stdio.h” (標(biāo)準(zhǔn)輸入輸出頭文件)。
2、在main文件中重定義函數(shù) 如下:
// 發(fā)送數(shù)據(jù)
int fputc(int ch, FILE *f)
{
USART_SendData(USART1, (unsigned char) ch);// USART1 可以換成 USART2 等
while (!(USART1->SR & USART_FLAG_TXE));
return (ch);
}
// 接收數(shù)據(jù)
int GetKey (void)
{
while (!(USART1->SR & USART_FLAG_RXNE));
return ((int)(USART1->DR & 0x1FF));
}
這樣在使用printf時(shí)就會(huì)調(diào)用自定義的fputc函數(shù),來發(fā)送字符。
3、在工程屬性的 “Target" -> "Code Generation" 選項(xiàng)中勾選 "Use MicroLIB"”
MicroLIB 是缺省C的備份庫,關(guān)于它可以到網(wǎng)上查找詳細(xì)資料。
至此完成配置,在工程中可以隨意使用printf向串口發(fā)送數(shù)據(jù)了。
二、第二種方法是在工程中添加“Regtarge.c”文件
1、在main文件中包含 “stdio.h” 文件
2、在工程中創(chuàng)建一個(gè)文件保存為 Regtarge.c , 然后將其添加工程中
在文件中輸入如下內(nèi)容(直接復(fù)制即可)
#include
#include #pragma import(__use_no_semihosting_swi) extern int SendChar(int ch); // 聲明外部函數(shù),在main文件中定義 extern int GetKey(void); struct __FILE { int handle; // Add whatever you need here }; FILE __stdout; FILE __stdin; int fputc(int ch, FILE *f) { return (SendChar(ch)); } int fgetc(FILE *f) { return (SendChar(GetKey())); } void _ttywrch(int ch) { SendChar (ch); } int ferror(FILE *f) { // Your implementation of ferror return EOF; } void _sys_exit(int return_code) { label: goto label; // endless loop } 3、在main文件中添加定義以下兩個(gè)函數(shù) int SendChar (int ch) { while (!(USART1->SR & USART_FLAG_TXE)); // USART1 可換成你程序中通信的串口 USART1->DR = (ch & 0x1FF); return (ch); } int GetKey (void) { while (!(USART1->SR & USART_FLAG_RXNE)); return ((int)(USART1->DR & 0x1FF)); } 至此完成配置,可以在main文件中隨意使用 printf 。
上一篇:煤礦數(shù)字通信系統(tǒng)設(shè)計(jì)
下一篇:STM32使用FSMC總線方式控制LCD的方法
推薦閱讀
史海拾趣
AMI(American Megatrends Inc)是一家全球領(lǐng)先的硬件和軟件解決方案提供商,主要專注于計(jì)算機(jī)主板固件、嵌入式系統(tǒng)管理和云計(jì)算服務(wù)。以下是關(guān)于AMI公司發(fā)展的五個(gè)相關(guān)故事:
公司創(chuàng)立與起步階段:AMI公司于1985年成立于美國佐治亞州的諾克羅斯,并在當(dāng)?shù)亟⒘丝偛俊9緞?chuàng)始人為S. Shankar和Pat Sarma。最初,AMI專注于為個(gè)人計(jì)算機(jī)和服務(wù)器等設(shè)備提供BIOS(基本輸入/輸出系統(tǒng))固件,為計(jì)算機(jī)硬件行業(yè)奠定了基礎(chǔ)。
BIOS技術(shù)創(chuàng)新:AMI在BIOS領(lǐng)域進(jìn)行了持續(xù)的技術(shù)創(chuàng)新,不斷推出新的功能和改進(jìn)。公司開發(fā)了多個(gè)版本的AMI BIOS,包括AMI WinBIOS、AMI Aptio和AMI UEFI BIOS等。這些BIOS版本在計(jì)算機(jī)硬件市場上得到了廣泛應(yīng)用,為用戶提供了穩(wěn)定可靠的固件解決方案。
嵌入式系統(tǒng)管理解決方案:除了BIOS固件,AMI還致力于開發(fā)和提供嵌入式系統(tǒng)管理解決方案。這些解決方案包括遠(yuǎn)程管理、監(jiān)控、診斷和維護(hù)等功能,用于企業(yè)服務(wù)器、網(wǎng)絡(luò)設(shè)備、嵌入式系統(tǒng)和物聯(lián)網(wǎng)(IoT)設(shè)備等領(lǐng)域。
合作伙伴關(guān)系與生態(tài)系統(tǒng)建設(shè):AMI與全球各種硬件和軟件供應(yīng)商建立了緊密的合作伙伴關(guān)系,共同推動(dòng)技術(shù)創(chuàng)新和產(chǎn)品發(fā)展。公司與主板制造商、芯片廠商、系統(tǒng)集成商和軟件開發(fā)商等合作,為客戶提供全面的解決方案和支持服務(wù)。
云計(jì)算服務(wù)和新興技術(shù)領(lǐng)域:隨著云計(jì)算和人工智能等新興技術(shù)的發(fā)展,AMI也開始拓展業(yè)務(wù)領(lǐng)域,提供云計(jì)算服務(wù)和相關(guān)解決方案。公司致力于為客戶提供高性能、高可靠性的云計(jì)算平臺(tái)和服務(wù),以滿足不斷增長的數(shù)據(jù)處理和存儲(chǔ)需求。
這些故事展示了AMI公司從創(chuàng)立初期到如今在BIOS技術(shù)創(chuàng)新、嵌入式系統(tǒng)管理、合作伙伴關(guān)系建設(shè)和拓展新興技術(shù)領(lǐng)域等方面取得的重要進(jìn)展。AMI作為一家全球知名的硬件和軟件解決方案提供商,持續(xù)致力于為客戶提供創(chuàng)新的產(chǎn)品和卓越的服務(wù)。
隨著科技的快速發(fā)展,ASI不斷加大對(duì)研發(fā)的投入,努力突破技術(shù)瓶頸。在某一時(shí)期,公司成功研發(fā)出一款具有劃時(shí)代意義的半導(dǎo)體芯片,這款芯片不僅性能卓越,而且功耗更低,極大地提升了電子設(shè)備的性能和使用體驗(yàn)。這一技術(shù)突破使得ASI在市場上獲得了更多的份額,并奠定了公司在半導(dǎo)體行業(yè)的領(lǐng)先地位。
隨著半導(dǎo)體行業(yè)的競爭加劇,價(jià)格戰(zhàn)和技術(shù)更新速度不斷加快。CSDC面臨著巨大的市場壓力。為了應(yīng)對(duì)這些挑戰(zhàn),公司決定調(diào)整戰(zhàn)略,專注于高端市場的開發(fā)。通過加大研發(fā)投入,提升產(chǎn)品質(zhì)量和性能,CSDC逐漸在高端市場站穩(wěn)了腳跟,實(shí)現(xiàn)了業(yè)務(wù)的穩(wěn)步增長。
無錫友達(dá)深知技術(shù)創(chuàng)新的重要性,因此不斷加大對(duì)研發(fā)團(tuán)隊(duì)的投入。公司擁有一支經(jīng)驗(yàn)豐富、技術(shù)實(shí)力雄厚的研發(fā)團(tuán)隊(duì),以及一流的成套設(shè)計(jì)工具和測試設(shè)備。這些團(tuán)隊(duì)和工具為公司開發(fā)具有自主知識(shí)產(chǎn)權(quán)的產(chǎn)品提供了有力保障。在數(shù)模混合信號(hào)處理領(lǐng)域,無錫友達(dá)擁有自己的系統(tǒng)設(shè)計(jì)體系和核心技術(shù),產(chǎn)品研發(fā)技術(shù)和量產(chǎn)能力處于國內(nèi)前列。
在電子行業(yè)中,產(chǎn)品質(zhì)量和客戶服務(wù)是企業(yè)生存和發(fā)展的關(guān)鍵。CCS公司始終堅(jiān)持質(zhì)量第一的原則,建立了嚴(yán)格的質(zhì)量管理體系和客戶服務(wù)體系。公司從原材料采購到產(chǎn)品生產(chǎn)、銷售等各個(gè)環(huán)節(jié)都進(jìn)行嚴(yán)格的質(zhì)量控制,確保產(chǎn)品的質(zhì)量和性能達(dá)到客戶的期望。同時(shí),CCS公司還提供了全方位的客戶服務(wù),包括售前咨詢、售后服務(wù)和技術(shù)支持等,為客戶提供了全方位的支持和幫助。
為什么source insight在光標(biāo)處插入字符時(shí),后面的字符被刪除了? 為什么我的source insight在光標(biāo)處插入字符時(shí),后面的字符被自動(dòng)刪除了? 比如說,本來有個(gè)\"string\",當(dāng)在t前插入a時(shí),變成saring了,為什么呢?… 查看全部問答∨ |
|
誰有好的項(xiàng)目? 最好是電子或光電類的。LED控制或照明類的優(yōu)先考慮。 我的EMAIL:ymhm619@yahoo.com 或QQ:18361474 … 查看全部問答∨ |
evc4.0開發(fā)ocx如果選擇模擬器, 編譯后能在pda 上面直接注冊(cè)嗎? evc4.0開發(fā)ocx如果選擇模擬器, 編譯后能在pda 上面直接注冊(cè)嗎? 選擇設(shè)備,能直接在pda上注冊(cè)嗎?… 查看全部問答∨ |
請(qǐng)教一下TMS320LF2407A與TMS320F2812功能上與硬件上區(qū)別 才開始學(xué)習(xí) 很多不懂 請(qǐng)各位多多幫忙 謝謝了!!!… 查看全部問答∨ |
本帖最后由 dontium 于 2015-1-23 13:27 編輯 用的AD9834 自己焊的電路,頻率給到2khz就開始衰減 為什么啊··········據(jù)說到1Mhz才衰減的啊····我的問題能出在什么地方啊 … 查看全部問答∨ |
BB Black 入門基礎(chǔ)之Eclipse C++ 控制LED燈(中) 本帖最后由 lonerzf 于 2014-1-13 10:57 編輯 接著上一篇。之前的地方設(shè)置是有問題的,先不講可能是哪,大家?guī)兔o查個(gè)錯(cuò)唄。謝謝啦{:soso_e100:} 補(bǔ)充下,如果用 SSH Only方式進(jìn)行遠(yuǎn)程部署,則在某些情況下方便得多。 還是在編譯好之后選擇綠 ...… 查看全部問答∨ |
收到大獎(jiǎng)。上圖了。 再次感謝莎莎、soso、eric_wang及所有eeworld團(tuán)隊(duì)成員,同時(shí)也祝大家新年快樂,身體健康,闔家幸福。 … 查看全部問答∨ |
插上板子以后在板載仿真器一側(cè)靠近接口的一側(cè)有兩個(gè)標(biāo)有IC的小芯片就發(fā)熱,打開任務(wù)管理器顯示那兩個(gè)驅(qū)動(dòng)裝上了,但是debug的時(shí)候老是顯示連接錯(cuò)誤,我初步認(rèn)為是驅(qū)動(dòng)沒裝好,但是按照修復(fù)驅(qū)動(dòng)的方法修復(fù)以后還是下不進(jìn)去,跪求大神講解… 查看全部問答∨ |
EEWORLD大學(xué)堂----電子紋身,還能隨時(shí)切換圖案~ 電子紋身,還能隨時(shí)切換圖案~:https://training.eeworld.com.cn/course/3608能夠通過藍(lán)牙鏈接智能手機(jī)來控制的電子紋身!不僅能改變紋身的式樣圖案,顯示重要信息,能讓紋身消失的無影無蹤,圖案還是可以動(dòng)噠!>>點(diǎn)擊查看EE大學(xué)堂更多創(chuàng)客視頻 … 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 基于單片機(jī)的LED自適應(yīng)調(diào)光系統(tǒng)
- 智能小車主控系統(tǒng)電路設(shè)計(jì)
- Microchip 升級(jí)數(shù)字信號(hào)控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進(jìn)行 ESP32 Jtag 調(diào)試
- 這款“逆天”電池充滿電僅需18秒!背后藏著什么黑科技?
- 動(dòng)力電池的2025中場戰(zhàn)事
- 高算力支持下,端側(cè)AI模型能給座艙帶來哪些變化?
- Allotrope Energy開發(fā)超級(jí)電容器 使混合動(dòng)力應(yīng)用的性能提高一倍
- 福特汽車申請(qǐng)新專利 或?qū)⑴鋫淇梢苿?dòng)桌子的控制臺(tái)
- 長城汽車攜手南京藝術(shù)學(xué)院及超高清聯(lián)盟,共推車載音視頻技術(shù)革新
- 高壓變頻器在尾氣制酸中的應(yīng)用
- 用于多網(wǎng)絡(luò)車輛連接的緊湊型18合1Patriot 天線
- 多路交通信號(hào)燈狀態(tài)監(jiān)測系統(tǒng)的設(shè)計(jì)
- 注塑機(jī)的變頻節(jié)能調(diào)速
- 趣味電子技術(shù)史話之通信技術(shù)史——科技與人文的結(jié)合,傳奇故事在這里!
- TE 福利月|有獎(jiǎng)?wù){(diào)查、技術(shù)干貨、限時(shí)折扣
- 輕盈點(diǎn)擊間,掌閱無盡風(fēng)采!東芝PCIM在線展會(huì)和你不見不散!
- 看是德科技資料填調(diào)查問卷贏好禮
- 艾睿電子直播:聚焦“TI FPD-Link III 汽車芯片組” ,汽車視頻傳輸理想解決方案
- 有獎(jiǎng)活動(dòng):曬出你的電子心頭好
- 【 有獎(jiǎng)直播】 掌握潮流~TI DLP®技術(shù)在汽車上的創(chuàng)新及全新應(yīng)用
- TE有獎(jiǎng)直播:未來感知 由我先知-傳感器在物聯(lián)網(wǎng)中的最新應(yīng)用
- 是德科技有獎(jiǎng)直播:如何使用UXR系列高端示波器
- 海柔創(chuàng)新入選TOP50倉儲(chǔ)自動(dòng)化公司
- AI芯片第一股寒武紀(jì)今日申購,IPO募資規(guī)模低于預(yù)期
- 更省錢,Silicon Mitus全新Open-Cell LCD電視面板電源管理芯片問市
- 中電會(huì)展“展覽月”加速電子信息行業(yè)復(fù)蘇
- 新時(shí)間 新機(jī)遇 CITE 2020以新面貌迎接轉(zhuǎn)型
- STM8L+BC26雙低功耗,微安
- stm8l151低功耗程序架構(gòu),調(diào)試心得
- NRF51822之使用外部32Mhz晶振
- STM8s外部時(shí)鐘晶振失效時(shí)鐘安全系統(tǒng)CSS啟動(dòng)演示
- STM8S103之時(shí)鐘設(shè)置