news 2026/7/22 21:10:01

Keil5 MDK 完整调试教程(硬件仿真J-Link/ST-Link为主,附带软件仿真)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Keil5 MDK 完整调试教程(硬件仿真J-Link/ST-Link为主,附带软件仿真)

一、调试前基础配置(必做)

1. 硬件接线(JTAG/SWD通用)

1)调试器(J-Link/ST-Link)USB插电脑,安装官方驱动;

2)接线:GND共地、SWCLK、SWDIO(SW两线);JTAG则接TMS/TCK/TDI/TDO/RST;

3)开发板独立供电,不要共用调试器3.3V,避免短路。

2. Keil工程参数设置

1. 点击工具栏魔术棒(Options for Target)

2. Debug选项卡(核心)

- 硬件调试(J-Link/ST-Link):右侧Use选择对应调试器

- J-Link: J-LINK/J-TRACE Cortex

- ST-Link: ST-Link Debugger

- 点击【Settings】:

- Port选择SW(推荐,引脚少),不要默认JTAG;

- 点击Auto Clk自动匹配通信速度;下方能读出芯片ID即接线正常;

- 勾选 Run to main() ,进入调试自动停在main函数;

3. Flash Download标签:勾选 Program 、 Erase Full Chip ,烧录程序到Flash。

4. Target标签:晶振Xtal(MHz)填写开发板实际晶振(如8.0、12.0)。

3. 编译工程

快捷键 F7 Build,确保0错误0警告,代码无语法问题。

二、进入/退出调试模式

- 启动调试: Ctrl+F5 或 Debug → Start/Stop Debug Session

- 退出调试:再次按 Ctrl+F5

进入后代码出现黄色箭头,代表下一条要执行的代码。

三、核心调试操作(快捷键)

1. 运行/暂停

- F5 Run:全速运行,遇到断点自动停下

- Stop:暂停程序

- RST(Reset CPU):芯片复位,程序回到main从头执行

2. 单步调试(排查逻辑BUG最常用)

- F10 Step Over:单步跳过,不进入子函数(日常首选)

- F11 Step Into:单步进入,进入自定义/库函数内部

- Ctrl+F11 Step Out:直接跳出当前函数,回到调用处

- Ctrl+F10 Run to Cursor:直接运行到鼠标光标所在行

3. 断点控制(定点暂停)

- F9:点击代码行左侧灰色区域,添加/取消普通断点(红点)

- 右键断点 → Breakpoint Properties:条件断点(如i==50时暂停,循环调试必备)

- Ctrl+Shift+F9:清除全部断点

四、查看数据(定位变量、内存、寄存器异常)

顶部菜单 View 调出窗口:

1. Watch窗口(监控变量)

打开Watch1,输入变量名(如 adc_val 、 GPIOA->ODR )实时查看;右键可切换十进制/十六进制显示。

2. Registers寄存器窗口

查看内核寄存器R0~R15、SP、PC,排查底层硬件异常。

3. Memory内存窗口

输入地址(0x20000000)查看整片RAM数据,适合串口缓存、数组排查。

4. Call Stack调用栈

查看函数调用层级,程序卡死、死循环时快速定位卡死函数。

5. Peripherals外设寄存器

可直接查看GPIO、USART、ADC等外设寄存器实时值,硬件调试神器。

五、软件仿真(无开发板,纯电脑模拟)

1. 魔术棒 → Debug选项卡,勾选 Use Simulator ;

2. Dialog DLL填 DARMSTM.DLL ,Parameter填芯片型号 -pSTM32F103C8 ;

3. Ctrl+F5进入仿真,支持逻辑分析仪观测IO电平、串口打印,适合纯逻辑验证,无法操作真实硬件。

六、常见调试报错排查

1. 找不到芯片、连接失败:

- 检查GND共地、SWDIO/SWCLK接线;

- Settings里切换SW模式,降低通信速度;

- 重启调试器、重装驱动。

2. 能识别芯片但下载失败:

- Flash Download勾选擦除整片;关闭芯片读保护。

3. 断点失效、程序跑飞:

- 关闭代码优化(魔术棒C/C++ → Optimization选Level 0);

- 不要在中断函数断点全速运行。

七、实用调试小技巧

1. 鼠标悬停变量,直接弹出当前数值;

2. 数组/指针直接在Watch输入数组名,查看全部元素;

3. 调试串口打印:添加ITM_SendChar代码,在调试窗口输出日志;

4. 逻辑分析仪(Logic Analyzer):观测GPIO电平时序,排查时序问题。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/22 21:08:42

生信基地,永远都不是论文工厂

一、AI时代,也不是人人都会生信分析 长期以来,生信基地都在致力于生信知识的普及和课程讲授。但真实现状是:不是人人都能自己做生信,我们有很多湿式验出生和临床的用户,看文献、做实验、饲养动物、查房、门诊、手术、会…

作者头像 李华
网站建设 2026/7/22 21:08:37

Adobe-GenP 3.0终极指南:3分钟免费激活Adobe全家桶的完整教程

Adobe-GenP 3.0终极指南:3分钟免费激活Adobe全家桶的完整教程 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 你是否曾为Adobe Creative Cloud高昂的订阅…

作者头像 李华
网站建设 2026/7/22 21:07:55

近期量化开发第一步,先把输入判断输出连起来

从手工交易走向量化实现时,很多人会本能地追求完整系统,仿佛功能越多就越接近目标。但早期真正重要的,是先得到一个小而清楚的流程,能说明规则如何进入、如何判断、如何得到结果。AI 可以帮助读者把这个范围切小,让学习…

作者头像 李华
网站建设 2026/7/22 21:01:30

100K带宽回传高清视频:AI通信技术如何做到?

在视频监控、应急通信、无人机巡检等场景里,带宽从来都是稀缺资源。传统高清视频回传往往需要数兆甚至数十兆带宽才能稳定运行,一旦网络条件恶化,画面就会卡顿、掉帧甚至直接中断。当行业传出有团队在不到100K带宽条件下实现高清视频回传时&a…

作者头像 李华
网站建设 2026/7/22 21:00:23

官方 API 烧钱?这个网关让你零成本撸 Claude / GPT / GLM

官方订阅一根毛都要钱,下面两个路子能让你接近零成本用上顶级模型。 先说痛点,不吐不快:Claude都是按 token 计费,Fable,Opus这种顶级模型输入约 $15 / 百万 token、输出 $75 / 百万 token,写个稍微像样的…

作者头像 李华