发布时间:2026/7/22 21:10:12
Keil5 MDK 完整调试教程(硬件仿真J-Link/ST-Link为主,附带软件仿真) 一、调试前基础配置必做1. 硬件接线JTAG/SWD通用1调试器J-Link/ST-LinkUSB插电脑安装官方驱动2接线GND共地、SWCLK、SWDIOSW两线JTAG则接TMS/TCK/TDI/TDO/RST3开发板独立供电不要共用调试器3.3V避免短路。2. Keil工程参数设置1. 点击工具栏魔术棒Options for Target2. 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警告代码无语法问题。二、进入/退出调试模式- 启动调试 CtrlF5 或 Debug → Start/Stop Debug Session- 退出调试再次按 CtrlF5进入后代码出现黄色箭头代表下一条要执行的代码。三、核心调试操作快捷键1. 运行/暂停- F5 Run全速运行遇到断点自动停下- Stop暂停程序- RSTReset CPU芯片复位程序回到main从头执行2. 单步调试排查逻辑BUG最常用- F10 Step Over单步跳过不进入子函数日常首选- F11 Step Into单步进入进入自定义/库函数内部- CtrlF11 Step Out直接跳出当前函数回到调用处- CtrlF10 Run to Cursor直接运行到鼠标光标所在行3. 断点控制定点暂停- F9点击代码行左侧灰色区域添加/取消普通断点红点- 右键断点 → Breakpoint Properties条件断点如i50时暂停循环调试必备- CtrlShiftF9清除全部断点四、查看数据定位变量、内存、寄存器异常顶部菜单 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. CtrlF5进入仿真支持逻辑分析仪观测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电平时序排查时序问题。

相关新闻

2026/7/22 22:35:39

Java 开发者 Agent 框架:AgentScope Java 2.0 GA 发布

Java 开发者也能用 Agent 框架了!AgentScope Java 2.0 GA 发布,三大核心优势拆解2026 年 7 月 7 日,AgentScope Java 2.0 正式发布。不是又一个"把 Python 翻译成 Java"的框架——它从第一天起就在解决同一个问题:怎么让…

2026/7/22 22:35:39

鸿蒙智能开发实战:端侧 OCR 文字识别与 AR 交互

一、当摄像头开始"读懂"世界 手机摄像头早已不只是记录画面的工具。十多年前,我们用它拍风景、拍家人;今天,我们更频繁地用它去"对准"——对准一张名片、一本图书的封底、一张身份证、一张发票。对准之后呢?如…

2026/7/22 22:30:39

【Claude Code】使用政策拒绝 Claude Code unable to respond Usage Policy refusal 应对

文章目录 一、问题描述 1.1 环境信息 1.2 报错现象 二、根因分析 2.1 错误链路追踪 2.2 可能原因列举 三、解决方案 方案一:/rewind 回退到触发轮次之前(推荐) 方案二:/clear 启动全新会话 方案三:非交互模式(-p)的特殊处理 四、验证与回归测试 五、总结与预防 5.1 核心…

2026/7/22 9:29:13

Unity与Python本地通信:基于Flask的跨语言数据交换实战

1. 项目概述:为什么我们需要一个本地通信服务器?在游戏开发、数字孪生、仿真训练等众多领域,Unity作为强大的实时3D内容创作平台,其核心逻辑通常由C#驱动。然而,当我们需要进行复杂的数据分析、机器学习推理、科学计算…

2026/7/22 0:02:17

抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具

抓包代理链路下的 TLS 指纹变化分析:为什么调试环境会影响访问结果 摘要 在网页调试、接口联调、自动化巡检和授权采集排查中,抓包是常见手段。但很多开发者会遇到一个现象:正常访问页面时没有问题,一进入抓包或代理调试环境&…

2026/7/22 0:02:17

微信QQ聊天记录误删恢复与备份方案全指南

1. 聊天记录误删的常见场景与恢复思路作为一名长期关注数据安全的技术博主,我处理过上百起聊天记录误删的求助案例。手机误操作、系统升级失败、设备损坏是三大常见诱因。上周就遇到用户更新微信时断电,导致近两年的工作群聊记录全部消失的极端案例。不同…

2026/7/22 0:02:17

2026最新8款个人AI编程免费工具深度实测

作为一名全栈独立开发者,我最近半年一直在折腾副业项目,每个月在AI编程工具上的订阅费算下来其实也不算便宜。作为个人开发者,我们追求的就是用最少的成本获得最高效的开发体验。TRAE 基础版免费,字节跳动出品的国内首款 AI 原生 …

2026/7/22 21:00:12

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…