打印
[STM32H7]

【STM32H750B-DK评测】5. STM32CubeIDE中使用SWV模式接收调试信息

[复制链接]
541|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我之前分享读取MPU6050数据的时候,使用了STLink自带的虚拟串口,来输出调试信息,从而使得上位机能够及时查看到调试输出信息。

其实,STLink的SWD模式下,还可以使用SWV调试模式,这样子不需要额外的串口,就能输出调式信息,也非常的方便。
但SWV模式默认没有开启,需要经过一番设置,才能够使用,下面是具体的步骤。

一、使用STM32CubeMX配置工程
在STM32CubeIDE中,点击.ioc文件,即可打开配置界面。或者直接使用STM32CubeMX打开.ioc文件进行配置。

将配置中的DEBUG,设置为Trace Asynchronous Sw即可,其他不用修改。
之前我使用串口调试的时候,设置的Swrial Wire,并设置对应的串口GPIO。

二、查看当前配置的运行频率:

记住该参数,后续在调试的时候,需要用到。

三、在STM32CubeIDE配置开启浮点输出:

如果不开启,则printf中不能输出float浮点数

四、修改调试配置,使能SWV功能:

这里的时钟频率,需要和之前STM32CubeMX中配置的一致。

五、开启调试模式,然后设置SWV输出端口,并进行配置:
点击小绿虫子,进入调试模式,待到进入main.c中的第一个断点时,通过菜单打开SWV ITM Data Console:


再点击+号,添加一个端口,使用默认的0即可


在点击配置图标,使能Port 0输出:


最后点击红色⭕️,即可开始接收调试信息:


不过,这个时侯,还没有调试信息输出。
因为还需要在在代码中做一下处理,使得printf的信息,能够输出到SWV中来。


六、修改代码,使得printf输出到SWV:
添加stdio.h调用:


在main.c中,添加下面的代码:


这将使得printf的信息,通过ITM发送,最终将被接收,并在SWV ITM Data Console中显示。

七、使用printf输出,并调试查看:
在main.c中合适的位置,添加printf输出:


然后重新进入调试模式,并让程序正常运行,调试输出信息就来了。


现在,就可以在代码中,愉快的通过printf输出调试信息,方便调试了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

37

主题

91

帖子

2

粉丝