基于STM32CubeIDE实现打印输出功能

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

a490295391c01a5e32fc0a0fb6457743.gif

转自 | STM32单片机

之前为大家分享的【专栏】printf系列教程,描述了基于Keil、IAR等集成开发环境实现SWV的功能。

1cb173299b24c97a22ad8f56c575b575.png

本文为大家分享基于STM32CubeIDE实现SWV的功能。

SWD:Serial Wire Debug,串行线调试

SWO:Serial Wire Output,串行线输出

SWV:Serial Wire Viewer,串行线查看器

ITM:Instrumentation Trace Macrocell,指令跟踪微单元。

STM32CubeIDE实现SWV步骤

53803638a4f39f4d5c5736f4b9e66a62.png

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

5daa0e12fff0088c963fbfacbe967220.png

图片2

STM32CubeIDE中使能SWO功能

f4b321d78eaa0254039426620d3f1d19.png

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

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

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

c13a8bde1992f2f74485a7fd2251dcff.png

8084d3e13039d26a68a663f84e97b290.png

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

4dd73dcd7a8667afc1a027dfda176e04.png

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

5c61c65e325e50214c9ac89ee28cd486.png

图片3

编译成功正确界面

c47af65f87ae53a69e96c80db2c93d28.png

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

fe549c02558126aa02cfed61dbe012a6.png

图片4

仿真调试配置界面

5bda34dc8273d970ceef94bb98e3b9a4.png

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

43e5f5c0f4ff271ecfc0b569d846e5ae.png

图片5

开启SWV ITM数据窗口

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

39060e1c50f57b664e5153da4f5cfd95.png

图片6

增加输出端口

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

8c091b269a2fc3ddbdb3e6b60a655cc0.png

图片7

SWV窗口配置界面

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

bb53bfd76b6c3b4a6cdb35f379b2806e.png

图片8

启动跟踪和开始运行

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

4c001fc66e50faadf79eae967a537f26.png

图片9

最后打印输出的状态

最后

其实很多的内容都已经在官方手册中有详细的描述,但是因为英文或者是时间的问题,我们大部分人没有时间和精力阅读完所有的文档的。

所以在遇到问题时候,会阻塞你比较长时间。希望本文在你遇到困难的时候能够给你一点启示,帮你快速解决手中的问题。

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

后台回复『ST工具』『STM32』阅读更多相关文章。

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

欢迎关注我的视频号:

3ab851c900922c9f015804deda83c485.png

点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值