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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于STM32的多種printf用法

汽車玩家 ? 來源:csdn ? 作者:csdn ? 2021-07-23 11:12 ? 次閱讀

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

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

解決方法:使用SWO/SWV。

  • SWO:Serial Wire Output,串行線輸出
  • SWD:Serial Wire Viewer,串行線查看器

一、常見printf輸出

  • 1.UART打印

  • 3.IAR EWARM終端輸出

  • 4.ST-LINK Utility SWV輸出


二、UART映射printf

使用硬件UART串口映射,實現printf打印輸出。

#include "stdio.h"

int fputc(int ch, FILE *f)

{

HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);

return ch;

}

三、Keil MDK-ARM Viewer輸出

  • 針對2、3、4輸出

  • 添加代碼:

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

  • 在Keil的Options中設置

四、IAR EWARM終端輸出

  • 1.Oprtins設置

  • 2.SWO配置


五、ST-LINK Utility SWV輸出

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


文章整合自:csdn

編輯:ymf

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • uart
    +關注

    關注

    22

    文章

    1219

    瀏覽量

    101120
  • 函數
    +關注

    關注

    3

    文章

    4284

    瀏覽量

    62325
  • Printf
    +關注

    關注

    0

    文章

    81

    瀏覽量

    13608
收藏 人收藏

    評論

    相關推薦

    還不會嗎?三分鐘讓你速通Printf~

    一、Printf簡介Printf是一個標準的c庫API,用來打印信息顯示的。Printf的底層輸出調用,在windows環(huán)境下是fputc函數,在GNUC環(huán)境下是__io_putchar函數
    的頭像 發(fā)表于 07-27 08:11 ?234次閱讀
    還不會嗎?三分鐘讓你速通<b class='flag-5'>Printf</b>~

    STM32CubeIDE printf浮點數,浮點數丟失數值的原因?

    1、芯片:STM32F103C8T62、環(huán)境:STM32CubeIDE3、問題:printf浮點數,浮點數數值丟失如 float A=25.6666;float B=24.7777;實際打印
    發(fā)表于 06-03 07:07

    STM32CubeIde生成的工程,使用printf函數沒有調用_write和__io_putchar函數,為什么?

    最近使用STM32CubeIde生成工程,就先做一個簡單的串口工程,使用NUCLEO-WBA52CG板子進行調試。 在初始化完畢后,使用printf打印log,重寫了int io_putchar
    發(fā)表于 05-24 06:13

    STM32 HAL printf所占用串口不能做中斷接收如何解決?

    目前在使用STM32L053系列MCU,基于HAL庫的程序,硬件串口資源有3個,都已經被使用;其中USART2通過Switch芯片來實現printf打印和讀取傳感器數據;因為USART2串口接收數據
    發(fā)表于 04-29 09:01

    在macos下SW4STM32編譯,調用printf異常怎么解決?

    剛開始在MACOS下開發(fā)STM32的程序,現在出現了一些很奇怪的問題,看是否大家有遇到這樣的問題。 開發(fā)配置如下 1.STM32cube427,STM32Cube FW_F4 V1.21.0
    發(fā)表于 04-17 06:48

    STM32CubeIDE使用sprintf/printf發(fā)送浮點數失敗的原因?

    均得到的是v=0.000, 已按照truestudio的一些教程設置了-u_printf_float標志 這個函數的浮點功能,很重要呀,一些程序調試,打印Debug信息,液晶顯示等都會用到 實在不行就只有換回Keil+stm32cubeMX了 求大神指點指點!
    發(fā)表于 04-16 06:11

    STM32的疑難雜癥之一:Printf的使用

    一、Printf簡介Printf是一個標準的C庫API,用來打印信息顯示的。Printf的底層輸出調用,在windows環(huán)境下是fputc函數,在GNUC環(huán)境下是__io_putchar函數
    的頭像 發(fā)表于 04-02 08:09 ?3217次閱讀
    <b class='flag-5'>STM32</b>的疑難雜癥之一:<b class='flag-5'>Printf</b>的使用

    求助,關于STM32CUBEIDE1.5.0使用Printf函數的疑問

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

    解決printf無法打印輸出的問題

    FreeRTOS中直接使用newlib庫是有問題的,相信使用過freertos進行printf都能發(fā)現這個問題,這個問題網上有兩種方法:1、使用printf.stdarg.c,問題在于,這個庫沒有
    的頭像 發(fā)表于 01-04 08:00 ?1631次閱讀
    解決<b class='flag-5'>printf</b>無法打印輸出的問題

    split在python中的用法

    split在python中的用法 split()是Python中一個非常常用的字符串函數,它能夠根據指定的分隔符將一個字符串分割成多個子字符串,并返回一個包含這些子字符串的列表。本文將詳細介紹
    的頭像 發(fā)表于 12-25 15:12 ?1944次閱讀

    pcb插針的用法

    pcb插針的用法
    的頭像 發(fā)表于 12-13 16:58 ?1737次閱讀

    plsy指令具體用法

    plsy是一種基于命令行的簡單工具,用于在文本終端上播放音樂。它是一個很小巧、易于使用的命令行播放器,適用于各種Unix系統(tǒng),如Linux和macOS。plsy支持多種音頻格式,包括MP3、FLAC
    的頭像 發(fā)表于 12-08 14:10 ?2143次閱讀

    AWorksLP應用筆記:重定向printf函數

    printf函數作為標準庫定義的格式化輸出方式,本文將介紹其在AWorksLP下默認適配以及重映射至熱拔插設備端口的實現。默認適配AWorksLP中默認已經對printf函數完成相關適配工作,且默認
    的頭像 發(fā)表于 11-25 08:24 ?583次閱讀
    AWorksLP應用筆記:重定向<b class='flag-5'>printf</b>函數

    C語言printf函數族學習筆記

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

    c語言printf輸出空格間隔

    C語言中,需要在printf輸出中添加空格間隔可以通過多種方式實現。這個空格間隔可以用于對輸出進行格式化使其更加易讀、美觀。在接下來的文章中,我將詳細介紹如何使用空格來間隔輸出以及如何控制輸出的對齊
    的頭像 發(fā)表于 11-24 09:56 ?6068次閱讀