Keil5 STM32 使用J-Link硬件仿真开启Trace 使用逻辑分析仪 解决Selected SWO Clock not supported

0 前言

最近在做FreeRTOS相关的实验,通过使用逻辑分析仪观察两个变量的值的变化,来观察系统阻塞延时工作过程。

本次使用的是STM32F103C8T6最小系统板,用STM32CubeMX软件配置引脚,在Keil5软件中编写代码,使用J-Link烧录及硬件仿真。

1 STM32CubeMX软件配置

在STM32CubeMX中,SYS–Debug–选择Trace Asynchronous Sw
在这里插入图片描述
能看到右边的引脚配置多了3个Debug引脚

引脚功能
PB3SWO 串行输出 用于打印调试信息
PA13SWDIO 串行线调试接口输出
PA14SWCLK 串行线时钟

一般的调试只需要接SWDIO和SWCLK即可,但本次实验为了使用Keil5的逻辑分析仪,必须要接SWO,以便从MCU上获取各个数据。

完成之后,还需要配FreeRTOS相关的中间件,都完成后点击Generate Code,并在Keil5中编写相关逻辑代码。这里就不放全部代码了,代码主要逻辑就是创建两个任务,每个任务中分别有一个全局变量flag1和flag2,让这两个变量间隔2ms翻转一次。
在这里插入图片描述

2 硬件连接

最小系统板引脚J-Link引脚
3V33V3及Vref
GNDGND
PB3SWO
PA13SWDIO
PA14SWCLK

3 Keil5设置

3.1

按如下操作进入到J-Link的设置界面
在这里插入图片描述
在Debug选项卡内,Port选择SW方式,其余默认
在这里插入图片描述

Trace选项卡
勾选上Enable。Core Clock这里输入你的MCU工作频率,SWO Settings的CoreCLK这里,把Autodetect这个勾去掉,手动输入分频系数,我实测Clock在6MHz以下能正常工作。
Trace Events这一列的复选框都不勾选。
在这里插入图片描述

3.2 Selected SWO Clock not supported问题解决

如果弹出了Selected SWO Clock not supported错误提示框,则说明你的SWO Clock设置过高

在这里插入图片描述
解决方法是将Core Clk(分频系数)这里调大点,即让SWO Clock变小点,再尝试。
在这里插入图片描述

4 添加逻辑分析仪

启动调试,在View选项卡选择Analysis Windows – Logic Analyzer
在这里插入图片描述

将待查看的变量flag1和flag2添加到逻辑分析仪
在这里插入图片描述
在逻辑分析仪的变量处右键,改为Bit
在这里插入图片描述
让程序继续运行,能看到flag1和flag2的翻转效果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值