在調(diào)試代碼的時(shí)候,最常用的就是使用printf函數(shù)來輸出一些打印信息,提示自己代碼的執(zhí)行情況。
如果你的UART串口不夠用,還要用printf,此時(shí)該怎么辦?
方法其實(shí)是有的,那就是:使用SWO/SWV。
SWO:Serial Wire Output,串行線輸出
SWD:Serial Wire Viewer,串行線查看器
一、常見printf輸出
1.UART打印

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

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


-
STM32
+關(guān)注
關(guān)注
2312文章
11183瀏覽量
374336 -
串行
+關(guān)注
關(guān)注
0文章
256瀏覽量
35506 -
Printf
+關(guān)注
關(guān)注
0文章
84瀏覽量
14803
發(fā)布評(píng)論請(qǐng)先 登錄
小小跳線大講究:PCB設(shè)計(jì)跳線用法全攻略
Linux內(nèi)核日志玩明白了嗎?printk調(diào)試神器全解析
測(cè)量麥克風(fēng)接口指南類型、區(qū)別與應(yīng)用解析你都知道嗎?
C指針的妙用分享
C語(yǔ)言的printf基本用法介紹
薄膜電容的關(guān)鍵詞是什么你知道嗎?
你知道板卡廠商參與芯片研發(fā)的α階段意味著什么?
STM32U385下載軟件連接不上怎么解決?
想搞定控制器連接?耐達(dá)訊Modbus轉(zhuǎn)Profinet這招你知道嗎?
薄膜電容器的優(yōu)點(diǎn)有哪些
嵌入式工控機(jī)vs普通工控機(jī):區(qū)別在哪?誰(shuí)才更適合你的生產(chǎn)線?
基于STM32的多種printf用法 你都知道嗎?
評(píng)論