【避坑指南】GD32 KEIL中SW Device没有识别芯片,jlink下载不进去的问题

本文讲述了作者在使用Jlink下载代码时遇到的问题,SWDevice无法识别芯片。经过排查,涉及了低功耗模式、复位操作、配置文件修改、IO资源占用,最终通过ISP下载修复。解决方案包括:调整SWD引脚、使用ISP下载、国产单片机支持等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目场景:

某次正常使用Jlink下载完代码后,发现Jlink链接不上了。下载报错。
在这里插入图片描述
SW Device没有识别芯片,换一个单片机就可以识别下载。
在这里插入图片描述


问题描述

在网上搜了好多帖子,有的说是芯片低功耗模式,按住复位下载就可以,我尝试,不行。
总的来说网上有3中方法,我列举出来:
1 、第一种就是网上说的,BOOT0拉高,下载,再拉低。

2 、另外一种就是按住复位键,用jlink下载,等连接开始的时候放开复位键。下载成功!

3、在工程目录下找到这个文件,用文本编辑器打开,将红色圈 改成Device=“Cortex-M0+”,保存此配置文件。再点击魔术棒进入到JLINK下,sw-device下出现相应的设备。 项目编译后下载固件到目标板,功能正常。
这3种办法应该可以解决90%的问题,但是我的还是不行。

原因分析:

仔细观察我的代码和原理图,我发现我把SWCLK和SWDAT当做普通IO使能了。我赶紧修改代码,换了两个引脚把SWD下载引脚一定要空出来。
将IO空出来后还是不能通过SWD下载代码,需要通过ISP将新的代码下载进去,这时候就需要一个串口设备,比如CH340(如果你的板子自带串口,可以不用),在GD32官网下载GigaDevice MCU ISP Programmer。
在这里插入图片描述
在keil中勾选生成hex文件,重新编译,在工程目录中找到生成的.hex文件。进行ISP下载,下载步骤链接我放在解决方案中。写的超级好。

解决方案:

使用ISP下载链接

支持国产单片机!!!

### 解决 SW 设备未连接到目标的问题 当遇到 `no target connected` 的错误提示时,这通常意味着调试器无法成功连接到目标微控制器。针对此类问题,可以采取以下措施来排查并解决问题: #### 配置 Keil 软件设置 确保Keil中的配置正确无误对于解决此问题至关重要。具体来说,在Keil软件中应调整如下选项[^2]: - **魔术棒(Debug)**: 使用ST-Link Debugger作为调试工具。 - **Settings->Debug**: 将Target Communication Port更改为SW模式。 这些更改有助于确保调试接口与目标硬件之间的通信正常工作。 #### 检查物理连接 确认所有电缆都已牢固插入,并且没有任何损坏或松动的情况存在。如果可能的话,尝试更换USB线缆或者使用同的端口来进行测试。 #### 更新驱动程序和固件版本 保持最新的驱动程序以及ST-Link编程器/仿真器的固件更新状态非常重要。访问官方网站下载最新版驱动及固件文件,并按照说明完成安装过程。 #### 测试其他项目工程 创建一个新的简单工程项目(例如LED闪烁),以此验证当前环境下的基本功能是否能够正常使用。这样做可以帮助排除特定于某个项目的潜在冲突因素。 ```c // 示例代码:简单的 LED 闪烁程序用于初步检测 #include "stm32f1xx_hal.h" int main(void){ HAL_Init(); __HAL_RCC_GPIOA_CLK_ENABLE(); // 启用 GPIOA 时钟 GPIO_InitTypeDef GPIO_InitStruct = {0}; /* 配置 PA5 为推挽输出 */ GPIO_InitStruct.Pin = GPIO_PIN_5; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); while(1){ HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); // 切换PA5电平 HAL_Delay(500); // 延迟500ms } } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值