打印
[其他ST产品]

如何启用SWV

[复制链接]
662|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Hitomi22|  楼主 | 2025-2-28 13:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚开始用STM32CubeIDE,当用SWV时,发现它处于禁用状态且无法修改。以为这是芯片的某些限制,但使用相同的硬件,在Keil却能够使用SWV,并在不停止仿真的情况下实时显示变量数值。


缺少什么步骤吗?如何启用SWV呢?

使用特权

评论回复
沙发
香水城| | 2025-2-28 17:47 | 只看该作者
给你个小链接吧,写得比较详细。我这里就不啰嗦了。

STM32CubeIDE几个调试工具使用演示

使用特权

评论回复
板凳
Hitomi22|  楼主 | 2025-2-28 23:22 | 只看该作者
香水城 发表于 2025-2-28 17:47
给你个小链接吧,写得比较详细。我这里就不啰嗦了。

STM32CubeIDE几个调试工具使用演示 ...

  • 正在研究学习中

使用特权

评论回复
地板
公羊子丹| | 2025-3-1 07:36 | 只看该作者
SWV在STM32CubeIDE默认是禁用的,需要手动开启Trace功能,你在Debug Configuration里找到Serial Wire Viewer (SWV)选项了吗?

使用特权

评论回复
5
周半梅| | 2025-3-1 07:37 | 只看该作者
确保你的MCU支持SWV,比如Cortex-M3/M4/M7都有这个功能,但M0/M0+就不支持,你用的具体是哪款STM32芯片?

使用特权

评论回复
6
帛灿灿| | 2025-3-1 07:39 | 只看该作者
在CubeMX中需要开启Debug接口(SYS -> Debug 选Serial Wire模式),否则SWO引脚不会配置正确,你这一步设置了吗?

使用特权

评论回复
7
童雨竹| | 2025-3-1 07:40 | 只看该作者
检查你的ST-Link固件版本,如果太旧,可能会导致SWV无法正常工作,建议使用STM32CubeProgrammer升级固件。

使用特权

评论回复
8
万图| | 2025-3-1 07:41 | 只看该作者
SWV需要特定的时钟配置,在Debug Configuration -> SWV里,需要手动填入Core Clock,这个值要与你的系统时钟一致,否则数据不会正确传输。

使用特权

评论回复
9
Wordsworth| | 2025-3-1 07:43 | 只看该作者
在Keil中能用SWV,说明硬件是OK的,可能是STM32CubeIDE的配置问题,你可以尝试手动开启ITM通道,比如ITM_SendChar()看看能否输出数据。

使用特权

评论回复
10
Bblythe| | 2025-3-1 07:44 | 只看该作者
SWV的数据是通过ST-Link的SWO引脚传输的,确保你的MCU的SWO(通常是PB3)已经正确连接到调试器。

使用特权

评论回复
11
Pulitzer| | 2025-3-1 07:45 | 只看该作者
使用SWV时,CubeIDE的控制台需要开启SWV Data Trace窗口(Window -> Show View -> SWV -> SWV ITM Data Console),你有打开这个窗口吗?

使用特权

评论回复
12
Uriah| | 2025-3-1 07:46 | 只看该作者
如果你用的是ST-Link v2.1(板载调试器),部分旧版本不支持SWV,建议换成ST-Link V3或独立的ST-Link V2试试看。

使用特权

评论回复
13
Clyde011| | 2025-3-1 07:48 | 只看该作者
在某些情况下,SWV和FreeRTOS的SysTick可能有冲突,建议切换到DWT计时器试试,或者手动降低SWV的波特率。

使用特权

评论回复
14
Hitomi22|  楼主 | 2025-3-1 20:10 | 只看该作者
感谢各位高手指点,正在根据指点一一测试

使用特权

评论回复
15
公羊子丹| | 2025-3-4 07:42 | 只看该作者
STM32CubeIDE 里 SWV 默认是禁用的,你检查一下 Debug Configurations 里 SWV 是否启用了?

使用特权

评论回复
16
周半梅| | 2025-3-4 07:44 | 只看该作者
你用的调试器是什么?ST-LINK 还是 J-Link?SWV 需要 SWO 引脚,确保你的硬件支持并正确连接。

使用特权

评论回复
17
帛灿灿| | 2025-3-4 07:46 | 只看该作者
在 STM32CubeIDE 里,你要在 Peripherals -> Debug 里设置为 Serial Wire,不然 SWV 不能用。

使用特权

评论回复
18
童雨竹| | 2025-3-4 07:48 | 只看该作者
SWV 依赖于 Trace 端口,Keil 可能自动配置了,而 CubeIDE 需要你手动开启 Core Clock 选项,确保频率正确。

使用特权

评论回复
19
万图| | 2025-3-4 07:50 | 只看该作者
试试看在 Debug Configurations -> Startup 里,勾选 Enable Serial Wire Viewer (SWV),有时候默认是未选中的。

使用特权

评论回复
20
Wordsworth| | 2025-3-4 07:52 | 只看该作者
你的芯片是否真的支持 SWV?部分低端 STM32 可能不支持 SWO,检查数据手册确认一下。

使用特权

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

本版积分规则

14

主题

16

帖子

0

粉丝