STM32CubeIDE SWV功能使用方法

关注+星标公众,不错过精彩内容

90bb19fbb206b5a98da9237f6585c87f.gif

转自 | STM32单片机

很多工具都自带有 SWV (Serial Wire Viewer)的功能,之前给大家分享的《打印输出教程》就描述了在Keil、IAR、ST-LINK Utility、STM32CubeProg、J-Link等工具下实现“SWV”的功能。

今天再给大家分享一下STM32CubeIDE的SWV功能。

e2ed5164d168c52f0228ab4ca901b594.png

第一步:在Pinout & Configuration选项中打开SWO的功能,此步骤是必须的。 

c0d2d37122eb2b15187f2b3fce0ffd7a.png

STM32CubeIDE中使能SWO功能

e7a645c1ced3e2eb004c42988ab6f8de.png

第二步:重定位printf的接口函数。

这里有个简单的方法,直接在syscalls.c文件中,改写_write()函数的内容,代码如下所示。再在此文件中包含ITM_SendChar 实现的头文件core_cmX.h,此文件一般都是已经被包含在你所选择的器件型号的头文件中。

此处我们选择的是stm32g431xx.h,直接放在此文件的开始处即可。 

dc7e6c8b12e3a8030ec70d22f2a97eb9.png

6f8a4ce38f2368793ff1b1e2c62612e4.png

第三步:在main.c文件中包含stdio.h这个头文件,并尝试打印printf,此处注意,打印不能很频繁,所以需要增加延时。

2ba1e96fc3bce428e197e574acb1c706.png

全局编译一下,查看是否有错误,如果有错误,请对应提示信息修改。编译没有错误之后,我们就可以进行下一步了。 

0ab7ca0f50c5c84eb7e2548f3882f4d5.png

9ed2e11ef53c37eee263c957ed59bc28.png

第四步:配置仿真调试参数。打开SWV的调试功能。此处注意:Core Clock必须与你配置的时钟是一致的。此处我配置是170MHz,与我的系统时钟一致。  

5464b72425f95d7f201bc788a7ae2623.png

65f647d48b763205cc0389cb88a4119f.png

第五步:开始进入调试界面,并在调试界面中打开Windows-->Show;View-->SWV的ITM data Console窗口。注意,整个SWV其实是共用一个配置文件的,所以,当你打开SWV内的任意一个窗口都可以进行SWV 的配置。在这里我们只是为了查看Printf的内容,所以就选择了SWV ITM Data Console窗口。关于这里边其他几个部分的详细说明参考UM2609的4.3章节的内容。

b7a4b7c6105ef83643f83f91ffcdff0d.png

开启SWV ITM数据窗口

此窗口打开后,需要新增一个Port端口。默认TIM中使用的就是0端口,所以我们直接选0即可。 

450d5522579314fc023822831d645fe1.png

增加输出端口

选择点击配置按钮对参数进行配置。配置情况如下: 

6ac6a49c82d0cfc847e09ea9c750db61.png

SWV窗口配置界面

推荐先复位一下工程(可选项),然后“启动跟踪/start trace”。注意:此处是先启动跟踪,之后再让程序运行起来,不能反序。 

e140c3607bc7308982aea73f57115027.png

启动跟踪和开始运行

此时即可看到打印出来的内容了。 

5b06db171401bb2026ff5f2f86fb92ff.png

最后打印输出的状态

------------ END ------------

98efe7a436c5be2ed80b9fc8be174aa8.gif

●专栏《嵌入式工具

●专栏《嵌入式开发》

●专栏《Keil教程》

●嵌入式专栏精选教程

关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。

fac7e0e2e8f5ff5ed5dcaebc4d5ff0e0.png

41d5abbcfba6d214b0ebd67bb139fdf2.png

点击“阅读原文”查看更多分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值