1. 引言
用 Keil5 开发时,经常遇到无法识别单片机的情况,表现为下载失败或调试器连不上芯片。本文将结合我学习的经验,帮助你解决这个问题。
2. 常见原因
问题通常出在以下几个方面:
1.调试器驱动没装好。
2.调试器与单片机接线错误。
3.Keil5 里芯片型号或调试器选错。
4.Pack 包或固件版本太旧。
5.芯片被锁定或进入低功耗。
3. 检查驱动
驱动没装好,Keil5 就认不出单片机。想要电脑连上你的单片机,就需要安装对应的驱动程序,在各大平台(比如b站)都有。
3.1 查看设备管理器
插上调试器,打开windows设备管理器,查看是否连接上你的芯片。
3.2 安装驱动
按调试器型号去下载驱动。(比如ST-Link,可以去官网或者b站江协都可以寻找到对应驱动程序)
装好后重新插拔调试器,确认设备正常。
4. 检查接线
接线错误也会导致识别失败,特别提醒下,如果你用的是ST-LINK,要注意连接对应的序号,有很大可能在这里接错,一般就是会接到上面的四个引脚。
4.1 确认引脚连接
以 SWD 为例,检查这几根线:
- SWDIO 接芯片 SWDIO。
- SWCLK 接芯片 SWCLK。
- GND 必须共地。
- 供电引脚接对。
4.2 检查供电
供电不足芯片无法工作。建议用外部电源,必要时手动复位一次。
5. 检查 Keil5 配置
配置选错也会识别不了。
5.1 选对芯片型号
在 Options for Target 的 Device 里,确认芯片型号和实际一致。
5.2 配置调试器
在 Debug 选项卡中:
- 选对调试器类型(ST-LINk就选ST-LINK)
- 在 Settings 里确认调试器已识别,选对接口(SWD 或 JTAG)。
5.3 检查 Flash Download
在 Utilities 里确认编程算法和下载地址正确。
6. 更新软件和固件
版本太旧也可能导致识别失败。
6.1 更新 Pack 包
在 Pack Installer 里更新芯片对应的 Device Pack。
6.2 更新调试器固件
ST-Link 等调试器可用官方工具升级固件。
7. 处理芯片异常
以上方法都不行,可能是芯片本身出问题了。
7.1 芯片被锁定
芯片可能被读写保护锁住。用厂商解锁工具,或通过 Bootloader 恢复。
7.2 芯片进入低功耗
先手动复位芯片,或按住复位键再点下载。
8. 总结
按驱动、接线、配置、软件、芯片这五个顺序排查,大多数问题都能解决。还不行就换调试器或找厂商技术支持。