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

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

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

基于STM32的多種printf用法 你都知道嗎?

黃工的嵌入式技術(shù)圈 ? 來(lái)源:黃工的嵌入式技術(shù)圈 ? 作者:黃工的嵌入式技術(shù) ? 2020-02-29 17:02 ? 次閱讀

在調(diào)試代碼的時(shí)候,最常用的就是使用printf函數(shù)來(lái)輸出一些打印信息,提示自己代碼的執(zhí)行情況。

如果你的UART串口不夠用,還要用printf,此時(shí)該怎么辦?

方法其實(shí)是有的,那就是:使用SWO/SWV。

SWO:Serial Wire Output,串行線(xiàn)輸出

SWD:Serial Wire Viewer,串行線(xiàn)查看器

一、常見(jiàn)printf輸出

1.UART打印

這種使用UART串口輸出,需要占用一個(gè)硬件串口。

2.Keil MDK-ARM Viewer輸出

3.IAR EWARM終端輸出

4.ST-LINK Utility SWV輸出

這后面三種不占用硬件UART,使用ITM機(jī)制。

二、UART映射printf

這種方法應(yīng)該很多人都知道,就是使用硬件UART串口映射,實(shí)現(xiàn)printf打印輸出。

對(duì)于Keil、 IAR,只需要添加如下代碼,就可以使用printf函數(shù):

#include "stdio.h"int fputc(int ch, FILE *f){HAL_UART_Transmit(&huart1,(uint8_t*)&ch,1,0xFFFF); return ch;}

意思就是將UART輸出(串口輸出一個(gè)字符)進(jìn)行映射。

三、Keil MDK-ARM Viewer輸出

針對(duì)2、3、4輸出:

添加代碼:

#include "stdio.h"int fputc(int ch, FILE *f){ ITM_SendChar(ch); return ch;}

在Keil的Options中設(shè)置:

提示:Core Clock內(nèi)核時(shí)鐘要和你實(shí)際時(shí)鐘對(duì)應(yīng)。

四、IAR EWARM終端輸出

1.Oprtins設(shè)置:

2.SWO配置

五、ST-LINK Utility SWV輸出

工具在線(xiàn)查看輸出信息,需要上面配置代碼,通過(guò)ST-Link鏈接即可。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guā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)注

    2264

    文章

    10854

    瀏覽量

    354289
  • 串行
    +關(guān)注

    關(guān)注

    0

    文章

    237

    瀏覽量

    33769
  • Printf
    +關(guān)注

    關(guān)注

    0

    文章

    81

    瀏覽量

    13608
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    求助,關(guān)于STM32CUBEIDE1.5.0使用Printf函數(shù)的疑問(wèn)

    基于eclipse的,就把工程弄到STM32CUBEIDE中,但怎么都不OK 自己從新從STM32CUBEMX到STM32CUBEIDE建工程,發(fā)現(xiàn)可以燒錄進(jìn)去,LED跑起來(lái)了,但是print
    發(fā)表于 03-22 06:47

    中性點(diǎn)接地和中性點(diǎn)不接地的區(qū)別知道嗎?

    電力系統(tǒng)中性點(diǎn)運(yùn)行方式有不接地、經(jīng)電阻接地、經(jīng)消弧線(xiàn)圈接地或直接接地等多種
    的頭像 發(fā)表于 02-20 10:34 ?4604次閱讀
    中性點(diǎn)接地和中性點(diǎn)不接地的區(qū)別<b class='flag-5'>你</b><b class='flag-5'>都</b><b class='flag-5'>知道嗎</b>?

    烘缸軸頭磨損的原因大家知道嗎

    電子發(fā)燒友網(wǎng)站提供《烘缸軸頭磨損的原因大家知道嗎.docx》資料免費(fèi)下載
    發(fā)表于 01-23 09:53 ?0次下載

    回饋電子負(fù)載的正確使用方法,知道嗎

    回饋電子負(fù)載的正確使用方法,知道嗎? 回饋電子負(fù)載是一種用來(lái)模擬電路負(fù)載的儀器,它能夠向電路提供可控的電流或電壓,以測(cè)試電路的性能和穩(wěn)定性。在電子設(shè)計(jì)、電路調(diào)試和故障排除等領(lǐng)域,回饋電子負(fù)載被廣泛
    的頭像 發(fā)表于 01-18 14:32 ?729次閱讀

    太陽(yáng)能光伏發(fā)電原理及優(yōu)點(diǎn),知道嗎?

    太陽(yáng)能光伏發(fā)電原理及優(yōu)點(diǎn),知道嗎? 太陽(yáng)能光伏發(fā)電是一種利用太陽(yáng)能將其轉(zhuǎn)化為電能的發(fā)電方式。它基于光伏效應(yīng),即當(dāng)光線(xiàn)照射到半導(dǎo)體材料上時(shí),會(huì)激發(fā)出電子,從而形成電流。 光伏發(fā)電的原理是基于半導(dǎo)體
    的頭像 發(fā)表于 12-29 15:17 ?1236次閱讀

    SMT絲印技術(shù)的歷史發(fā)展的四個(gè)階段,知道嗎?

    SMT絲印技術(shù)的歷史發(fā)展的四個(gè)階段,知道嗎?
    的頭像 發(fā)表于 12-27 10:15 ?819次閱讀

    LED沒(méi)有燈絲是靠什么發(fā)光的,知道嗎

    LED沒(méi)有燈絲是靠什么發(fā)光的,知道嗎? LED是一種半導(dǎo)體材料制成的電子元件,它通過(guò)電流在半導(dǎo)體材料中的復(fù)合和重新結(jié)合而發(fā)光,而不像傳統(tǒng)的白熾燈泡需要依靠燈絲來(lái)發(fā)光。在這篇文章中,我將為您詳細(xì)介紹
    的頭像 發(fā)表于 12-20 11:16 ?1054次閱讀

    運(yùn)算放大器的種類(lèi)都有哪些?知道嗎

    運(yùn)算放大器的種類(lèi)都有哪些?知道嗎?
    的頭像 發(fā)表于 12-13 15:14 ?721次閱讀
    運(yùn)算放大器的種類(lèi)都有哪些?<b class='flag-5'>你</b><b class='flag-5'>知道嗎</b>?

    LED顯示屏四大優(yōu)點(diǎn),知道嗎

    LED顯示屏四大優(yōu)點(diǎn),知道嗎? LED顯示屏是一種使用LED作為主要光源的顯示設(shè)備,具有以下四大優(yōu)點(diǎn): 1. 高亮度和對(duì)比度:LED顯示屏采用了高亮度的LED光源,相比傳統(tǒng)的顯示屏,LED顯示屏
    的頭像 發(fā)表于 12-11 16:51 ?1917次閱讀

    5大高精密多層pcb的特點(diǎn)知道嗎

    5大高精密多層pcb的特點(diǎn)知道嗎
    的頭像 發(fā)表于 12-08 16:10 ?825次閱讀

    肖特基二極管4大特性,知道嗎?

    肖特基二極管4大特性,知道嗎?
    的頭像 發(fā)表于 12-07 16:29 ?665次閱讀
    肖特基二極管4大特性,<b class='flag-5'>你</b><b class='flag-5'>都</b><b class='flag-5'>知道嗎</b>?

    C語(yǔ)言printf函數(shù)族學(xué)習(xí)筆記

    printf 應(yīng)該是學(xué)習(xí)C語(yǔ)言的第一個(gè)函數(shù),我們知道它是用于字符串格式化輸出的。但是它的用法真正了解了嗎?
    的頭像 發(fā)表于 11-24 11:15 ?886次閱讀
    C語(yǔ)言<b class='flag-5'>printf</b>函數(shù)族學(xué)習(xí)筆記

    c語(yǔ)言printf輸出空格間隔

    C語(yǔ)言中,需要在printf輸出中添加空格間隔可以通過(guò)多種方式實(shí)現(xiàn)。這個(gè)空格間隔可以用于對(duì)輸出進(jìn)行格式化使其更加易讀、美觀(guān)。在接下來(lái)的文章中,我將詳細(xì)介紹如何使用空格來(lái)間隔輸出以及如何控制輸出的對(duì)齊
    的頭像 發(fā)表于 11-24 09:56 ?6059次閱讀

    pcb菲林是什么?這5個(gè)作用你知道嗎

    pcb菲林是什么?這5個(gè)作用你知道嗎
    的頭像 發(fā)表于 11-22 11:14 ?7460次閱讀

    二極管選型這些參數(shù)知道嗎?

    大家知道二極管最主要的特性是單向?qū)щ娦浴5怯捎诙O管存在半導(dǎo)體體電阻和引線(xiàn)電阻,所以當(dāng)外加正向電壓時(shí),在電流相同的情況下,二極管的端電壓大于PN結(jié)上的壓降;
    發(fā)表于 11-19 09:46 ?481次閱讀
    二極管選型這些參數(shù)<b class='flag-5'>你</b><b class='flag-5'>都</b><b class='flag-5'>知道嗎</b>?