Keil下使用STlink重定向printf的配置

Keil下使用STlink重定向printf的配置

1. printf 重定向

Keil默認下使用Micro LIB庫,
在這裏插入圖片描述
該庫調用 fputs 實現 printf,如下描述:
在這裏插入圖片描述
所以需要實現fputs函數,以調用printf函數,如下:

int fputc(int ch, FILE *f)
{
	ITM_SendChar(ch);
}

只需要在需要打印的位置調用printf即可。

	HAL_Delay(500);
	printf("Hello world.\n");

2. STM32 ST-LINK Utility配置

打開STM32 ST-LINK Utility,點擊ST-Link菜單項,進入Serial Wire Viewer界面如下,配置System clock爲單片機運行的時鐘,根據實際時鐘配置,此處爲100MHz,點擊Start 即可看到輸出。
在這裏插入圖片描述

3. Keil配置

在Keil軟件下的Debug配置界面,進入STlink trace的配置,如下圖:
在這裏插入圖片描述
配置Core Clock時鐘,Trace Enable以及ITM Stimulus Ports。然後調試代碼,點擊F5運行。如下圖所示:
在這裏插入圖片描述
在Debug (printf)Viewer窗口可以看到printf的輸出。
如果沒有該窗口,通過菜單View調出:
在這裏插入圖片描述
PS:Debug Viewer僅在調試狀態下才有,所以在Keil下看日誌需要在Debug狀態下。

4. 總結

  1. 使用STlink 下載,調試很方便,配置簡單,不需要使用額外的外設,例如串口,即可實現LOG輸出;
  2. 在Keil下使用STlink,看代碼,日誌不需要切換軟件,工作更高效。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章