91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于 printf和scanf在開(kāi)發(fā)STM32中的配置和應(yīng)用

黃工的嵌入式技術(shù)圈 ? 來(lái)源:黃工的嵌入式技術(shù)圈 ? 2020-03-24 10:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Ⅰ、寫(xiě)在前面

在我們學(xué)習(xí)C語(yǔ)言的時(shí)候都應(yīng)該知道printf和scanf這個(gè)函數(shù),但是你們?cè)陂_(kāi)發(fā)中經(jīng)常使用這個(gè)函數(shù)嗎?

在我們購(gòu)買(mǎi)開(kāi)發(fā)板配套例程以及在網(wǎng)上找的例程中或許會(huì)見(jiàn)到使用printf函數(shù)的地方,就有許多人問(wèn),這個(gè)printf和scanf是如何配置才能使用的?

printf和scanf串口打印功能對(duì)于學(xué)習(xí)開(kāi)發(fā)的朋友是一種很好的工具,在沒(méi)有顯示屏或更多表現(xiàn)你程序運(yùn)行結(jié)果的時(shí)候,用它打印信息就能很好地解決這個(gè)問(wèn)題。在實(shí)際項(xiàng)目中,用于打印某段程序運(yùn)行狀態(tài),也能幫你快速判斷程序的正確性。

Ⅱ、printf和scanf的配置

printf和scanf都知道他們是“標(biāo)準(zhǔn)函數(shù)接口”,源代碼的實(shí)現(xiàn)過(guò)程就不用我們自己寫(xiě),只需要調(diào)用就行了。

printf和scanf在軟件中要實(shí)現(xiàn)其功能,就需要對(duì)軟件及工程進(jìn)行配置,我們下面講述一下常規(guī)的配置。

配置分使用微庫(kù)和不使用微庫(kù)兩種方法,不使用微庫(kù)就是需要在代碼中多添加一段代碼,由于使用“標(biāo)準(zhǔn)函數(shù)接口”這種方式與編譯工具關(guān)系很緊密,在不同 編譯器上實(shí)現(xiàn)的方式存在不同(意思就是通用性不是很強(qiáng)),所以不建議使用這種方法。因此,我們講述使用微庫(kù)配置的方法。

1.使用微庫(kù)

我們講述MDK-ARM 和 EWARM下的配置。

MDK-ARM的使用微庫(kù):

Project -> Options for Target -> Target 勾選上“Use Micro LIB”,如下圖:

EWARM的使用微庫(kù):

Project -> Options -> General Options -> Library Configuration 選中“Full”,如下圖:

2.串口重定義

由于我們使用的是USART串口進(jìn)行打印數(shù)據(jù),則需要使用串口重定義。其實(shí)很簡(jiǎn)單,就是要在源代碼中重定義兩個(gè)函數(shù):int fputc(int ch, FILE *f)和int fgetc(FILE *f)

STM32工程中:

Ⅲ、printf和scanf的使用

printf和scanf的功能這里不再描述,在你工程運(yùn)用中會(huì)逐漸明白他的用途,我們這里提供例程代碼并講述一下他們的簡(jiǎn)單使用方法。

我們?cè)趯?shí)際應(yīng)用中,常用的應(yīng)該是printf這個(gè)函數(shù),而scanf這個(gè)函數(shù)比較少見(jiàn),但也是有些地方可以使用的,比如要在某個(gè)地方傳遞參數(shù),可以通過(guò)scanf輸入?yún)?shù),以便調(diào)試。

在STM32工程代碼中簡(jiǎn)單的應(yīng)用:

通過(guò)scanf輸入一個(gè)字符,通過(guò)pringf打印輸入的字符,代碼如下:

char GetData;

While(1)

{

scanf("%c", &GetData);

printf("GetData = %c\n", GetData);

}

基于STM32F103的實(shí)例代碼(其他配置原理一樣)我已近打包分享給大家:

基于Keil工具的代碼:

http://pan.baidu.com/s/1kUELHnL

基于IAR工具的代碼:

http://pan.baidu.com/s/1nuILwed

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2309

    文章

    11162

    瀏覽量

    373406
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    183

    文章

    7644

    瀏覽量

    145569
  • Printf
    +關(guān)注

    關(guān)注

    0

    文章

    84

    瀏覽量

    14732
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    求助STM32H563關(guān)于LWESP配置UART問(wèn)題

    求助STM32H563關(guān)于LWESP配置UART問(wèn)題,信息如下: Uart GPIO:PA9 USART1_TXPA10 USART1_RX 參考文章:https://blog.csdn.net
    發(fā)表于 01-27 14:02

    請(qǐng)問(wèn)串口接收可以用scanf接收嗎?

    串口接收可以用scanf接收嗎?
    發(fā)表于 01-15 08:20

    linux-arm開(kāi)發(fā)環(huán)境的簡(jiǎn)單配置

    linux-arm開(kāi)發(fā)環(huán)境簡(jiǎn)單配置 關(guān)于linux-arm開(kāi)發(fā)環(huán)境簡(jiǎn)單配置是ARM學(xué)習(xí)的第一步,很多初學(xué)者會(huì)在這問(wèn)題上糾結(jié)很久都不能
    發(fā)表于 01-13 07:56

    ADS編譯器,用標(biāo)準(zhǔn)的C庫(kù)函數(shù)printf()需要哪些設(shè)置呢?

    ADS編譯器,用標(biāo)準(zhǔn)的C庫(kù)函數(shù)printf()需要哪些設(shè)置呢?又在哪兒可以看到printf()輸出的信息呢?
    發(fā)表于 12-23 07:32

    scanf函數(shù)介紹

    scanf函數(shù)向字符型數(shù)組輸入數(shù)據(jù)char a[20]; scanf(\"%s\", a); 錯(cuò)誤 scanf(%s\",a); 正確 用scanf函數(shù)向數(shù)值型
    發(fā)表于 12-02 06:07

    求助,關(guān)于C代碼printf打印的疑問(wèn)求解

    使用E203 testbench執(zhí)行附帶的benchmark測(cè)試用例時(shí)候,得到如下打印信息: CPU驗(yàn)證小白一枚,有個(gè)問(wèn)題不是很理解:黃色框框內(nèi)的字符看起來(lái)應(yīng)該是C代碼printf語(yǔ)句
    發(fā)表于 11-10 07:54

    Arty移植蜂鳥(niǎo)E203后,發(fā)現(xiàn)不支持scanf函數(shù),怎么解決?

    本人想用Arty A7 35T做一些基于蜂鳥(niǎo)E203的串口交互開(kāi)發(fā),目前已經(jīng)移植并且成功運(yùn)行了printf函數(shù)。 測(cè)試scanf函數(shù)的時(shí)候,發(fā)現(xiàn)結(jié)果不理想(好吧其實(shí)就沒(méi)反應(yīng)),于是讀
    發(fā)表于 11-07 07:13

    Proteus配置STM32外部時(shí)鐘HSE如何配置

    有大佬會(huì)配置ProteusSTM32F103C8的外部時(shí)鐘嗎 這個(gè)proteus打印不出來(lái)數(shù)據(jù),但是實(shí)物的連接
    發(fā)表于 11-02 13:54

    printf函數(shù)hbird SDK的應(yīng)用

    helloworld的例程,使用到了printf函數(shù),通過(guò)串口輸出了數(shù)據(jù)。 Nuclei Studio通過(guò)teminal窗口可以查
    發(fā)表于 10-31 08:48

    STM32 Nucleo-144開(kāi)發(fā)板技術(shù)解析與應(yīng)用指南

    STMicroelectronics NUCLEO-H7S3L8 STM32 Nucleo-144開(kāi)發(fā)板采用STM32H7S3L8 MCU,提供了一個(gè)經(jīng)濟(jì)實(shí)惠的多功能平臺(tái),用于原型設(shè)計(jì)和實(shí)驗(yàn)
    的頭像 發(fā)表于 10-17 14:40 ?1127次閱讀
    <b class='flag-5'>STM32</b> Nucleo-144<b class='flag-5'>開(kāi)發(fā)</b>板技術(shù)解析與應(yīng)用指南

    對(duì)于STM32CubeMx使用FMC的NAND FLASH里面配置這些時(shí)間有什么說(shuō)明嗎?

    對(duì)于STM32CubeMx使用FMC的NAND FLASH里面配置這些時(shí)間有什么說(shuō)明嗎?
    發(fā)表于 07-21 07:07

    瑞薩RA單片機(jī)e2 studio環(huán)境下printf編譯出錯(cuò)的問(wèn)題解析

    最近看到有一些網(wǎng)友討論關(guān)于:瑞薩RA單片機(jī)e2 studio環(huán)境下printf編譯出錯(cuò)的問(wèn)題。
    的頭像 發(fā)表于 05-24 15:51 ?1578次閱讀
    瑞薩RA單片機(jī)<b class='flag-5'>在</b>e2 studio環(huán)境下<b class='flag-5'>printf</b>編譯出錯(cuò)的問(wèn)題解析

    STM32CubeMX配置DCMI的腳位時(shí),Mode的選項(xiàng), 只有8bits, 10bits與12bits, 為何沒(méi)有14bits?

    STM32CubeMX配置DCMI的腳位時(shí),Mode的選項(xiàng), 只有8bits, 10bits與12bits, 為何沒(méi)有14bits?
    發(fā)表于 04-27 08:49

    為什么GPIO配置總是出問(wèn)題?

    STM32開(kāi)發(fā),GPIO(通用輸入輸出)配置看似簡(jiǎn)單,但在實(shí)際開(kāi)發(fā)
    的頭像 發(fā)表于 04-07 11:59 ?1728次閱讀
    為什么GPIO<b class='flag-5'>配置</b>總是出問(wèn)題?

    STM32開(kāi)發(fā)入門(mén)進(jìn)階必備!《STM32嵌入式系統(tǒng)開(kāi)發(fā)—基于STM32CubeMX和HAL庫(kù)》新書(shū)發(fā)布!

    上市。高校教學(xué)推薦,STM32入門(mén)必讀!圖書(shū)介紹《STM32嵌入式系統(tǒng)開(kāi)發(fā)——基于STM32CubeMX和HAL庫(kù)》是一本介紹嵌入式系統(tǒng)
    的頭像 發(fā)表于 04-03 14:54 ?1922次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>開(kāi)發(fā)</b>入門(mén)進(jìn)階必備!《<b class='flag-5'>STM32</b>嵌入式系統(tǒng)<b class='flag-5'>開(kāi)發(fā)</b>—基于<b class='flag-5'>STM32</b>CubeMX和HAL庫(kù)》新書(shū)發(fā)布!