STM32CubeIDE使用ITM調試


以前用Keil MDK總喜歡用一個串口,使用printf函數往串口助手上打印一些提示信息。發現使用ITM比使用串口調試好使一點,但是前提是,必須要用調試器,J-Link或者ST-Link,ST-Link還必須要有SWO這根線,也就是一般開發板上帶的4線的SWD接口是不行的。下面記錄一下我的配置過程。

打開IDE新建STM32工程,file-->new-->STM32 Project,然后選擇自己的開發板,點擊next,輸入工程名,點擊Finish。

 

 

 

 

 進入到配置頁面,先配置HCLK,記好這個值,

 

 Ctrl + S生成代碼,打開main.c,添加以下代碼

/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */
...
...
...
/* USER CODE BEGIN 0 */
int _write(int file , char *ptr,int len)
{
    int i = 0;
    for(i = 0;i<len;i++)
        ITM_SendChar((*ptr++));
    return len;
}
/* USER CODE END 0 */

也可以將#include "stdio.h"寫到main.h中,這樣在別的文件中也能用printf了,

在main函數的while(1)中加入printf測試

/* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */
      printf("Hello World!\n");
      HAL_Delay(1000);
    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */

點擊 小錘子 構建項目,完成后點擊  Debug

 

 點擊 OK

 

 點擊 調試器選項卡,更改調試探頭為實際使用的仿真器,勾選Enable SWV,並修改內核時鍾為創建工程時設置的HCLK的值。點擊 Apply,再點擊OK。

進入到Debug頁面后,點擊 Windows-->show View --->SWV--->SWV ITM data console

 

可以看到在下部出現了SWV ITM data console窗口,點擊configure trace,

 

 勾選圖中兩處,然后點擊OK,關閉后再點擊紅色小圓圈

 

然后點擊Resume

 

 即可在SWV ITM data console窗口看到printf打印的內容。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM