在調試代碼的時候,最常用的就是使用printf函數來輸出一些打印信息,提示自己代碼的執行情況。
如果你的UART串口不夠用,還要用printf,此時該怎么辦?
方法其實是有的,那就是:使用SWO/SWV。
SWO:Serial Wire Output,串行線輸出
SWD:Serial Wire Viewer,串行線查看器
一、常見printf輸出
1.UART打印
這種使用UART串口輸出,需要占用一個硬件串口。
3.IAR EWARM終端輸出
4.ST-LINK Utility SWV輸出
這后面三種不占用硬件UART,使用ITM機制。
二、UART映射printf
這種方法應該很多人都知道,就是使用硬件UART串口映射,實現printf打印輸出。
對于Keil、 IAR,只需要添加如下代碼,就可以使用printf函數:
#include "stdio.h"int fputc(int ch, FILE *f){HAL_UART_Transmit(&huart1,(uint8_t*)&ch,1,0xFFFF); return ch;}
意思就是將UART輸出(串口輸出一個字符)進行映射。
三、Keil MDK-ARM Viewer輸出
針對2、3、4輸出:
添加代碼:
#include "stdio.h"int fputc(int ch, FILE *f){ ITM_SendChar(ch); return ch;}
在Keil的Options中設置:
提示:Core Clock內核時鐘要和你實際時鐘對應。
四、IAR EWARM終端輸出
1.Oprtins設置:
2.SWO配置
五、ST-LINK Utility SWV輸出
工具在線查看輸出信息,需要上面配置代碼,通過ST-Link鏈接即可。
-
STM32
+關注
關注
2282文章
10986瀏覽量
361085 -
串行
+關注
關注
0文章
237瀏覽量
34224 -
Printf
+關注
關注
0文章
83瀏覽量
13999
發布評論請先 登錄
相關推薦
STM32的幾種開發方式,你都知道嗎?(可下載)
LED戶外顯示屏的五大優勢,你知道嗎?
STM32CubeMX的菜單介紹

stdio.h實現了printf函數?
51單片機中為什么很少出現printf的身影

這些電源常用仿真軟件,你都知道嗎?
這些電源常用仿真軟件,你都知道嗎?

電源的這些常識你知道嗎?
PCB打樣不簡單:這些特殊工藝你知道嗎?

PCBA打樣要注意哪些關鍵信息你都知道嗎?
還不會嗎?三分鐘讓你速通Printf~

STM32CubeIde生成的工程,使用printf函數沒有調用_write和__io_putchar函數,為什么?
單片機Debug的這幾種方式,你都知道嗎?

評論