在調(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è)硬件串口。
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鏈接即可。
-
STM32
+關(guān)注
關(guān)注
2264文章
10854瀏覽量
354289 -
串行
+關(guān)注
關(guān)注
0文章
237瀏覽量
33769 -
Printf
+關(guān)注
關(guān)注
0文章
81瀏覽量
13608
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論