STM32 开发中 STLINK/JLINK (Keil)调试 的使用总结

DEBUG

调试是很多人都会忽略的一个功能,日常开发中好像不怎么用的到,有串口就行
基本来说,我们从一开始都喜欢用串口打印数据来看这个数值变化的结果

这样做确实可行,在代码量不大的情况下

代码量一大,需要调试的地方多了,往往费时费力
调试功能是KEIl类的IDE重要的功能之一,用好它可以达到事半功倍的效果

本文介绍我在开发过程中最基本的调试应用
监视变量的值、修改变量的值

KEIl中的调试

在keil编译下载好程序之后点击调试按钮进入调试页面
debug位置.png

调试界面:
调试界面.png

全速运行:点击红色框中的全速运行,程序就会正常的运行起来,这时候可以监测它里面的各个位置值的情况
左上角的调试按钮(绿色框中部分)分别是Reset复位:让程序复位到到初始状态。Run-全速运行,让程序处于运行状态。Stop停止运行,让程序处于停止状态

gongjulan .png

添加变量到watch窗口 : 右键选中一个变量,选择“Add ‘变量名’ to… ->watch1”
添加变量到Watch.png

watch窗口在工具栏上的位置:红色框处,点击选择watch 1 即可打开监视串口,第一次添加变量的时候会自动打开,添加过变量之后再次进入调试界面的时候可以从这里打开
watch.png

例子:读取编码器脉冲

进制更改:keil默认16进制显示,添加变量之后右键 Value ,将第一个选项取消选择改为10进制显示
十进制十六进制.png

正传电机一圈即可看到 脉冲数变为384 方向为0
384.png

### STM32 J-Link 和 ST-Link 的区别及用途 #### 支持的芯片范围 J-Link 是一种通用型 ARM 内核芯片仿真器,能够支持多种不同类型的微控制器和处理器[^2]。相比之下,ST-Link 主要专用于 STM8 和 STM32 系列单片机,在这些特定平台上提供了优化的支持。 #### 开发环境兼容性 对于开发环境的选择上,如果开发者正在使用 Keil MDK 或其他基于 CMSIS-DAP 协议的工具链,则 Ulink 或者具备 CMSIS-DAP 功能的产品可能是更好的选择。然而当涉及到更广泛的 IDE 如 IAR Embedded Workbench 或 Segger 自家的 Ozone 调试界面时,J-Link 显示出了更大的灵活性和支持度[^1]。而 ST-Link 则紧密集成到了官方提供的 STM32CubeIDE 中,并且也能够在 Keil MDK 下正常工作。 #### 性能表现 就编程性能而言,两者都采用了 USB 2.0 接口并支持通过 SWD (Serial Wire Debug) 进行快速下载固件到目标板卡中去[^3]。不过在某些情况下,特别是在处理复杂项目或是频繁更新闪存中的应用程序代码时,J-Link 往往可以提供更快的速度以及更加稳定的连接质量。 #### 特殊功能特性 除了基本的功能之外,J-Link 提供了一系列高级特性比如实时追踪(Real-Time Trace)、Flasher 编程器等功能来增强用户体验;而对于那些仅限于 STM32 生态系统的用户来说,ST-Link V2-1 增加了对 SWIM 接口的支持,这使得它成为唯一可以在同一设备上同时操作 STM8 和 STM32 MCU 的解决方案之一。 ```python # Python 示例展示如何区分两种调试器的应用场景 def choose_debugger(platform, ide): if platform.startswith('STM') and 'STM32CubeIDE' in ide: return "推荐使用 ST-Link" elif any(x in ide for x in ['Ozone', 'IAR']): return "建议选用 J-Link" else: return "根据具体需求决定" print(choose_debugger("STM32", "STM32CubeIDE")) # 输出: 推荐使用 ST-Link ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值