- 一、硬件准备
需要准备含SWDIO、SWDCLK以及SWO三种信号接口的ST-Link调试器。
- 二、STM32CubeMX软件配置
- 在软件STM32CubeMX上,设置芯片PB3引脚为SYS_JTDO-TRACESWO。
- 在左侧配置选择栏,选择System Core->SYS->Debug->Trace Asynchronous Sw。
- 在顶侧选中Clock Configuration,记住最右侧的FCLK时钟频率。
- 三、STM32CubeIDE软件配置
- 在界面最上侧工具栏中,选择运行->调试配置,在弹出窗口中,选则调试器设置界面,在串行线查看器(SWV)类型框内,勾选使能,Core Clock (MHz)设置为FCLK时钟频率,其他保持默认。
- 在界面最上侧工具栏中,选择项目->属性,在弹出界面中,在左侧选择C/C++构建->设置,然后在右侧工具设置中,勾选Use float with printf from newlib-nano(-u _printf_float),以此允许打印浮点数。
- 四、程序配置
- 在main.h中添加
#include <stdio.h>
- 在main函数前添加
int _write(int file , char *ptr,int len) { int DataIdx; for(DataIdx = 0;DataIdx<len;DataIdx++){ ITM_SendChar(*ptr++); } return len; }
-
使用printf()打印调试信息,如printf("SWO_Test!_%d\r\n",PrintCnt+=1);
- 五、调试
- 点击调试按钮,进入调试模式,等到程序阻塞至HAL_Init()。
- 在顶部选择栏选择窗口->显示视图->其他,搜索SWV,选中SWV ITM Data Console,点击打开按钮。
- 在界面右下侧选中SWV ITM Data Console窗口,点击工具图标(Configure trace),在弹出来的界面中勾选ITM Stimulus Ports中的Enable ports 0,然后点击确认,点击小红点(Start Trace)至右侧。
- 点击界面上方工具栏的继续按钮(快捷键F8)后,SWV ITM Data Console窗口打印出调试信息。