
www.z-linear.com拿到D223开发板第一步就是连接下载器、烧录固件。但很多新手卡在Debug选项关闭、找不到COM口、Hex文件下载失败等问题上。本文从硬件连接到软件配置提供一份完整的SWD调试与固件烧录指南。一、SWD接口基础1.1 SWD vs JTAGSTM32支持两种调试接口特性SWDJTAG引脚数2SWDIOSWCLK5TDOTDITCKTMSTRST速度高可达4MHz中功能调试下载调试下载边界扫描占用IO少2个NRST多5个NRSTD223使用✅❌D223使用SWD接口只需要3根信号线电源地。1.2 D223的SWD接口D223板载标准SWD接口4线从外侧到内侧排布┌──────┬──────┬──────┬──────┐ │ GND │ SWDIO│ SWCLK│ NRST │ └──────┴──────┴──────┴──────┘信号说明STM32引脚GND地VSSSWDIO数据线双向PA13SWCLK时钟线PA14NRST复位NRST二、下载器选择2.1 ST-LinkST-Link是意法半导体官方调试器型号接口电压特点ST-Link/V2SWDJTAG3.3V最常用USB接口ST-Link/V3SWDJTAG3.3V新一代速度更快ST-Link/V2-1SWDJTAGVCP3.3V集成虚拟串口2.2 J-LinkJ-Link是SEGGER公司的调试器也支持STM32特性J-LinkST-Link支持品牌多品牌仅ST速度更快足够价格较高较低软件支持J-Flash/KeilSTVP/Keil/CubeIDED223兼容✅✅D223同时支持ST-Link和J-Link两种下载器。2.3 仿真器固件升级首次使用前需要检查仿真器固件版本。在CubeIDE中通过Help → ST-LINK Upgrade检查并升级仿真器固件。升级一次即可除非有新版本。如果出现ST-Link is not in the DFU mode提示从USB接口拔掉仿真器重新插入即可。三、Debug选项配置3.1 CubeMX中的Debug设置重要提醒CubeMX默认关闭Debug选项如果不设置编译下载一次后再次下载会报错。配置步骤打开CubeMX工程进入SYS → Debug将Debug设置为Serial Wire模式重新生成代码编译下载3.2 如果不小心关闭了Debug如果已经下载了关闭Debug的固件SWD引脚被复用为GPIO无法正常下载。恢复方法方法1按住复位键 1. 按住D223板上的复位按键不松开 2. 点击Keil/CubeIDE的下载按钮 3. 松开复位按键 4. 固件下载完成Debug恢复 方法2Connect under reset 1. 在调试器设置中选择Connect under reset 2. 下载器会在复位期间连接SWD 3. 正常下载固件3.3 NRST引脚的重要性NRST复位引脚在SWD调试中至关重要。当Debug被关闭时只有通过NRST引脚在复位期间强制连接SWD才能恢复调试。D223的SWD接口包含NRST引脚正是为此设计。四、Keil MDK下载4.1 工程配置D223固件使用Keil MDK 5开发下载配置Project → Options for Target → Debug右侧选择 ST-Link Debugger 或 J-Link/J-Trace点击Settings按钮在Debug标签页中设置Port:SW不是JTAGSW Frequency: 4MHz推荐Reset: Connect under reset在Flash Download标签页中设置Programming Algorithm: STM32H7xx FlashStart: 0x08000000Size: 0x2000002MB4.2 下载步骤步骤1: 连接SWD下载器到D223的SWD接口 步骤2: USB连接下载器到电脑 步骤3: 打开Keil工程 步骤4: 编译Build→ 确保无错误 步骤5: 点击Download按钮或快捷键F8 步骤6: 等待下载完成 步骤7: 按一下ST-Link上的复位按键或D223板上的复位键4.3 下载成功日志11:27:49: Connected via SWD. 11:27:49: SWD Frequency 4.0 MHz. 11:27:49: Connection mode : Normal. 11:27:49: Debug in Low Power mode enabled. 11:27:49: Device ID: 0x450 11:27:49: Device flash Size : 2MBytes 11:27:49: Device family : STM32H7xx 11:31:44: Memory programmed in 1s and 359ms. 11:31:44: Verification... OK 11:31:44: Programmed memory Checksum: 0x026F1B注意Device flash Size: 2MBytes确认了STM32H743的2MB Flash容量。如果显示其他容量检查芯片型号是否正确。4.4 常见下载失败原因错误信息原因解决方法No target connectedSWD线未接好检查4线连接Device ID: 0x000复位未成功按住复位键重试Flash download failedFlash算法不对选择正确的STM32H7xxCannot access targetDebug被关闭按住复位键下载SWD Communication error频率太高降低SWD频率到1MHz五、Hex文件烧录5.1 什么是Hex文件Hex文件是Intel HEX格式的固件文件包含地址和数据信息:020000040800F0 → 记录类型04设置基地址0x0800 :10000000... → 记录类型00数据记录 :00000001FF → 记录类型01文件结束5.2 使用STVP烧录HexSTVPST Visual Programmer可以独立烧录Hex文件无需Keil工程步骤1: 打开STVP 步骤2: 选择芯片型号: STM32H743VIT 步骤3: 选择下载器: ST-Link 步骤4: File → Open → 选择.hex文件 步骤5: Program → 点击下载 步骤6: 等待烧录完成5.3 使用J-Flash烧录HexJ-Link用户可以使用J-Flash烧录步骤1: 打开J-Flash 步骤2: 新建工程 → 选择STM32H743VI 步骤3: File → Open → 选择.hex文件 步骤4: Target → Connect 步骤5: Target → Program Verify 步骤6: 等待烧录完成六、CubeIDE调试6.1 创建调试配置步骤1: 构建Build项目确保无错误 步骤2: 点击Debug按钮 步骤3: 首次调试出现Debug As对话框 步骤4: 选择 STM32 Cortex-M C/C Application 步骤5: Debug probe: ST-LINK 或 J-LINK 步骤6: Interface: SWD自动与CubeMX设置一致 步骤7: Reset behaviour: Connect under reset 步骤8: 点击OK开始下载和调试6.2 断点调试在源代码中设置断点快捷键 CtrlShiftB在当前行设置/取消断点断点位置必须是有效代码行6.3 调试场景D223调试中常用的断点位置调试目标断点位置说明USB接收fun_msgProcess_task检查命令解析ADC采集qspiAdcTimTask检查DMA数据DAC输出ddsDacCalc检查波形计算触发检测触发条件判断处检查触发逻辑PWM控制motorAccDiv判断处检查加减速FRAM读写FramRead/FramWrite检查参数存储七、CH340驱动安装7.1 USB CDC虚拟串口驱动D223使用USB CDC类Windows 10及以上版本免驱。旧版Windows需要安装CH340驱动安装步骤: 1. 从资料包中找到5.CH340驱动 2. 运行SETUP.EXE 3. 点击安装按钮 4. 等待安装完成 5. 插入D223的USB线 6. 设备管理器中出现新的COM端口7.2 驱动安装失败排查问题解决方法安装时提示驱动签名选择始终安装此驱动插入USB无反应检查USB线缆是否支持数据传输COM口出现黄色感叹号重新安装CH340驱动COM口编号异常设备管理器→删除设备→重新插入八、开发环境快速搭建清单8.1 必装软件软件用途说明Keil MDK 5固件编译下载需要H7xx DFP包STM32CubeMX外设配置修改引脚/外设CH340驱动USB虚拟串口Win10免驱ST-Link驱动SWD下载器随Keil安装8.2 可选软件软件用途Visual Studio 2022C#上位机开发STM32CubeIDE替代Keil的IDESource Insight源码阅读STVPHex文件独立烧录J-FlashJ-Link用户烧录工具LabVIEW 2024 Q1图形化上位机8.3 快速验证流程步骤1: 安装全部软件和驱动 步骤2: 用SWD线连接下载器到D223 步骤3: USB线连接D223到电脑 步骤4: 打开免安装上位机zlTool 步骤5: 在Keil中打开固件工程→编译→下载 步骤6: 运行zlTool→选择COM口→连接 步骤7: 设置参数→启动采集→查看波形九、固件升级9.1 当前D223的升级方式D223的固件升级通过SWD下载器完成没有OTA空中升级功能。升级步骤连接SWD下载器在Keil中打开新的固件工程编译下载按复位键重启9.2 Bootloader的可能性STM32H743的2MB Flash可以分配为Bootloader Application0x08000000 ~ 0x0800FFFF: Bootloader64KB 0x08010000 ~ 0x0801FFFF: Application备份区128KB 0x08020000 ~ 0x0807FFFF: Application主区384KBD223当前没有实现Bootloader。如果需要USB在线升级功能可以基于开源固件自行实现。十、总结D223的SWD调试与固件烧录要点环节关键操作注意事项硬件连接SWD 4线连接GNDSWDIOSWCLKNRST下载器ST-Link或J-Link首次需升级固件CubeMX设置DebugSerial Wire默认关闭必须设置Keil配置PortSW, 4MHz选择STM32H7xx Flash算法Hex烧录STVP或J-Flash独立于IDE烧录USB驱动CH340驱动Win10免驱调试断点单步Connect under reset恢复Debug按住复位键下载NRST引脚的关键作用免安装验证zlTool快速验证硬件功能从SWD硬件连接到Keil编译下载从Hex文件独立烧录到CH340驱动安装本文覆盖了D223从拿到手到跑通的全流程。记住最重要的一点CubeMX的Debug选项必须设置为Serial Wire否则下载一次后就再也连不上了。系列完结本文是D223技术解析系列的第三十五篇第七批5篇。七批35篇文章完整覆盖了D223从半导体原理到芯片选型、从硬件架构到固件代码、从通信协议到应用场景、从电源设计到调试烧录的全部技术维度。