第二章:调试环境搭建——硬件调试器选型与驱动安装
好,咱们正式开始动手了。这一章我带你搞定调试环境,说白了就是让电脑和点钞机硬件能「说上话」。你想想看,没有调试器,你连芯片里跑的是啥都不知道,那还调个啥?
2.1 硬件调试器选型:J-Link 还是 ST-Link?
先说说调试器。市面上主流的就两种:J-Link 和 ST-Link。我个人的习惯是,手边至少备一个 J-Link,再备一个 ST-Link。为什么?因为不同芯片厂家的「脾气」不一样。
| 调试器型号 | 支持芯片 | 调试速度 | 价格(参考) | 我的推荐 |
|---|---|---|---|---|
| J-Link(SEGGER) | ARM Cortex-M 全系列 | 最高 50 MHz | 正版 400+,盗版 30-80 | 项目主力,稳定可靠 |
| ST-Link(ST 官方) | STM32 全系列 | 最高 4 MHz | 正版 50-100 | 调试 STM32 首选 |
| DAP-Link(开源) | ARM Cortex-M 大部分 | 最高 10 MHz | 20-50 | 性价比之选 |
我在项目中遇到过一件事:用 ST-Link 调试一个非 ST 的芯片,结果死活连不上。折腾了半天,换了个 J-Link,一次成功。所以我的建议是:如果你主要玩 STM32,ST-Link 够用;如果涉及其他 ARM 芯片,直接上 J-Link。
核心要点:点钞机主控芯片通常是 STM32F4 或 GD32F4 系列,两者都兼容 J-Link 和 ST-Link。我个人更倾向 J-Link,因为它的调试速度更快,断点更多,而且支持 RTT 日志输出——这个在调试点钞机这种实时性要求高的设备时,特别好用。
2.2 驱动安装——别小看这一步
驱动装不好,调试器插上去电脑没反应。嗯,这里要注意,不同调试器的驱动安装方式不一样。
2.2.1 J-Link 驱动安装
- 去 SEGGER 官网下载 J-Link Software and Documentation Pack(最新版即可)
- 安装时选择「USB Driver」和「J-Link Commander」
- 插上 J-Link,打开设备管理器,应该能看到「J-Link」设备
- 如果显示黄色感叹号,手动更新驱动,选择安装目录下的驱动文件
警告:我曾经遇到过盗版 J-Link 被 SEGGER 官方驱动「封杀」的情况。如果你用的是盗版 J-Link,建议安装旧版本驱动(比如 V6.34 之前),或者使用「J-Link 破解版驱动」。否则插上去会提示「Clone detected」,直接罢工。
2.2.2 ST-Link 驱动安装
- 安装 STM32CubeProgrammer 或 STM32CubeIDE,驱动会自动装好
- 或者单独安装 ST-Link 驱动(STSW-LINK009)
- 插上 ST-Link,设备管理器应该出现「STMicroelectronics STLink dongle」
说实话,ST-Link 的驱动比 J-Link 省心多了。基本上装个 IDE 就全搞定了。但要注意:ST-Link 的固件版本也会影响调试。我建议定期用 STM32CubeProgrammer 更新一下 ST-Link 的固件。
2.3 串口/USB 转 TTL 模块接线方法
调试器搞定之后,咱们还得搞定串口。点钞机调试时,串口是最常用的「眼睛」——芯片跑没跑、跑到哪了、报了什么错,全靠串口打印。
2.3.1 模块选型
市面上最常见的串口转 TTL 模块是 CH340G 和 CP2102。我个人习惯用 CP2102,因为它的驱动在 Windows 10/11 上免装,插上就能用。CH340G 虽然便宜,但需要手动装驱动,而且有些盗版芯片会掉驱动。
小技巧:买模块的时候,注意看有没有「RTS」和「DTR」引脚。这两个引脚可以用来控制目标芯片的复位和 Boot 模式,在点钞机固件升级时特别有用。我一般会买带「自动下载电路」的模块,省去手动按复位键的麻烦。
2.3.2 接线方法
接线其实很简单,记住一个原则:交叉连接。
| USB 转 TTL 模块 | 点钞机主控板 | 说明 |
|---|---|---|
| TX(发送) | RX(接收) | 模块发,主控收 |
| RX(接收) | TX(发送) | 模块收,主控发 |
| GND(地) | GND(地) | 共地,必须接 |
| VCC(3.3V/5V) | VCC(可选) | 供电,看情况接 |
为什么 TX 要接 RX?你想想看,两个人面对面说话,你的嘴巴(TX)要对准对方的耳朵(RX),对吧?串口通信也是这个道理。
注意:点钞机主控板通常是 3.3V 电平,而有些 USB 转 TTL 模块默认输出 5V。我曾经有一次没注意,直接把 5V 接到了 3.3V 的串口引脚上,结果烧了主控的串口外设。所以接线前一定要确认电平匹配!如果不确定,先用万用表量一下模块的 VCC 输出。
2.3.3 实际接线步骤
- 找到点钞机主控板上的串口引脚(通常是 PA9/TX、PA10/RX,或者 PD5/TX、PD6/RX)
- 用杜邦线连接:模块 TX → 主控 RX,模块 RX → 主控 TX
- 连接 GND 到 GND(这一步不能省)
- 如果主控板是独立供电,VCC 可以不接;如果主控板需要模块供电,接 3.3V
- 插上 USB,打开串口助手(推荐 Putty 或 SSCOM),设置波特率 115200、8 位数据、1 位停止、无校验
验证方法:如果接线正确,点钞机上电后,串口助手应该能看到启动信息。如果啥都没有,先检查接线,再检查波特率。我遇到过最坑的一次是:线接对了,波特率也对了,但就是没输出——最后发现是主控程序里根本没开串口输出。嗯,这个坑我替你们踩过了。
2.4 调试环境验证
硬件都接好了,驱动也装了,怎么验证环境是不是真的搭好了?我一般会做三步验证:
- 调试器验证:打开 J-Link Commander 或 ST-Link Utility,看能不能识别到芯片。如果能读出芯片 ID,说明调试器没问题。
- 串口验证:用一根杜邦线短接模块的 TX 和 RX,然后在串口助手里发送数据,看能不能收到回显。能收到,说明模块和驱动都正常。
- 联合验证:用调试器下载一个简单的点灯程序,同时打开串口助手看打印信息。如果灯亮了,串口也有输出,恭喜你,环境搭好了。
我的习惯:我会在调试器上贴一个标签,写上「J-Link - 点钞机专用」,串口模块也单独放一个盒子里。这样下次用的时候不用再翻箱倒柜找。另外,我会把常用的接线图拍下来存手机里,现场调试时直接翻出来看,省得每次都要回忆。
好了,环境搭建这部分就讲到这里。下一章咱们开始真正上手——用调试器连接点钞机主控,看看芯片里到底跑了些什么。到时候你会发现,前面这些准备工作,花再多时间都值得。