1 写在前面
2 硬件平台
3 代码部分
和UART实现printf打印输出类似,UART是重定向printf到UART,而这里是重定向到ITM。只需这两行代码就能实现SWO输出,不像UART一样还要编写UART驱动。(此函数在BSP_SWO.c文件中)

4 Keil SWO输出配置
4.6 提供两份配置好的、完整的工程,供大家参考学习。要在您的工程中使用SWO调试,只需将BSP_SWO.c和BSP_SWO.h这个两个文件添加到工程中即可。

下载链接:https://pan.baidu.com/s/1EhJulPbD6Cp5OohzpQY0Fg&shfl=sharepset
提取码:h43c
5 STM32 ST-LINK Utility SWO输出配置
6 写在后面
打印信息用串口也可以做到,SWO的优势是什么?
- 串口是MCU的片内外设,占用一个外设资源,而SWO不占用外设
- 使用不同的MCU需要重新编写串口的驱动,而SWO不需要写驱动
- 串口输出一般使用中断方式发送,调试时可能需要在中断中观察某些信息,这样中断嵌套就容易出现问题,而SWO没有中断问题
- SWO的速度比串口快得多,在时序要求较高的情况下对代码的影响较小。发送相同的字符串,SWO的速度是串口的8.7倍。


虽然SWO不能像串口那样双向传输,而我们用串口调试很多时候也只是使用TX输出而已。这样看来,SWO引脚用更好的方式替代了串口的TX引脚。
7 联系我们
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224955.html原文链接:https://javaforall.net
